邱智飛
計算機(jī)軟件已經(jīng)成為人們生活工作中不可缺少的一部分,它能夠輔助人們便捷地完成多種工作,將勞動者從重復(fù)繁瑣的工作中解放出來。該設(shè)計方針對某銀行點鈔業(yè)務(wù)系統(tǒng)特點,提出了獨立于業(yè)務(wù)系統(tǒng)之外的監(jiān)控點鈔狀態(tài)解決方案。本方案的軟件運(yùn)行基于Windows平臺,采用C/S結(jié)構(gòu),使用SQL Server作為數(shù)據(jù)庫。軟件可以根據(jù)業(yè)務(wù)系統(tǒng)運(yùn)行過程中產(chǎn)生的日志文件,分析并上傳業(yè)務(wù)系統(tǒng)的實時狀態(tài),管理人員可以根據(jù)數(shù)據(jù)或者軟件提示及時對設(shè)備進(jìn)行維護(hù)、維修,最后通過一系列評價方式對軟件進(jìn)行評價,驗證軟件的實用性。
環(huán)境
某國有企業(yè)的市級公司在本區(qū)域業(yè)務(wù)涉及不同縣市的89個分支銀行網(wǎng)點,每個網(wǎng)點有數(shù)據(jù)服務(wù)器、業(yè)務(wù)電腦,網(wǎng)點網(wǎng)絡(luò)通過廣域網(wǎng)連接至市級公司,市級公司通過交換路由設(shè)備連接至省級公司,該市級公司的網(wǎng)點在日常業(yè)務(wù)辦理中需要使用點鈔機(jī)、清分機(jī)對收納的鈔票進(jìn)行點數(shù)、清理,點鈔機(jī)、清分機(jī)在本網(wǎng)點內(nèi),通過局域網(wǎng)將過鈔數(shù)據(jù)上傳至本網(wǎng)點服務(wù)器,本網(wǎng)點服務(wù)器再通過FTP將匯總的過鈔信息通過業(yè)務(wù)軟件上傳至省公司數(shù)據(jù)庫。
省公司信息中心每月對各網(wǎng)點過鈔信息進(jìn)行分析清理,并將網(wǎng)點的點鈔機(jī)、清分機(jī)運(yùn)行狀態(tài)、數(shù)據(jù)上傳完整度和及時度等指標(biāo)作為對市公司信息中心的業(yè)績考核指標(biāo)之一,網(wǎng)點數(shù)據(jù)上傳完整率=(網(wǎng)點1×實際工作天數(shù)+網(wǎng)點2×實際工作天數(shù)+網(wǎng)點3×實際工作天數(shù)+……+網(wǎng)點89×實際工作天數(shù))/(網(wǎng)點1×應(yīng)工作天數(shù)+網(wǎng)點2×應(yīng)工作天數(shù)+網(wǎng)點3×應(yīng)工作天數(shù)+……+網(wǎng)點89×應(yīng)工作天數(shù))×100%,上傳完整率為100 %則為優(yōu)秀,小于100 %大于95 %為一般,小于95 %大于90 %為合格,低于90 %為不合格,如果市級公司網(wǎng)點數(shù)據(jù)上傳完整率為不合格將受到處分。因此,市級公司信息中心管理人員必須每天不定時通過遠(yuǎn)程桌面登錄每個網(wǎng)點的數(shù)據(jù)服務(wù)器,手動檢查數(shù)據(jù)是否及時上傳。
問題
用戶需要每天對89個網(wǎng)點多次進(jìn)行手工巡查,單個網(wǎng)點需要檢查的內(nèi)容較多,需要占用一定人力資源,且重復(fù)簡單勞動消耗了管理人員寶貴的工作時間。
手工巡查制度受到實施人員技術(shù)、情緒和責(zé)任心等因素影響,該方法不利于長期維持。
手工巡查時間間隔大,無法實時監(jiān)測網(wǎng)點數(shù)據(jù)上傳狀態(tài),不能及時處理發(fā)生的故障。
本市級公司網(wǎng)點數(shù)據(jù)上傳完整率已經(jīng)連續(xù)2個月被評為不合格,受到了嚴(yán)厲處分,數(shù)據(jù)上傳完整率不合格的問題亟待解決。
可行性
網(wǎng)點上傳的數(shù)據(jù)存放路徑固定,存儲的數(shù)據(jù)格式統(tǒng)一,關(guān)鍵信息存在一定排列規(guī)律,數(shù)據(jù)文件讀取權(quán)限開放,所以需要單獨開發(fā)一款計算機(jī)程序,通過設(shè)計相應(yīng)的程序算法,提取其中上傳時間、設(shè)備IP等關(guān)鍵信息,再通過數(shù)據(jù)庫語言以直觀的形式展示給用戶,從而解決問題。
用計算機(jī)軟件完成重復(fù)任務(wù)比人工更有優(yōu)勢,用戶經(jīng)過簡單培訓(xùn)即可操作,不需要專業(yè)知識,軟件維護(hù)費(fèi)用低、節(jié)約人力成本,不存在疲勞、厭倦等人類的生理缺陷,能夠長效執(zhí)行任務(wù)。
面向?qū)ο蟮某绦蛟O(shè)計語言技術(shù)成熟,開發(fā)周期短、容錯性強(qiáng)、程序界面美觀并且各種操作與用戶交互便捷。
適應(yīng)時代的數(shù)字化趨勢,有利于推動行業(yè)數(shù)字化進(jìn)程,對行業(yè)信息化的長足發(fā)展起到了推波助瀾的作用。
難點
用戶需要了解所有網(wǎng)點的業(yè)務(wù)系統(tǒng)是否及時將點鈔機(jī)的工作數(shù)據(jù)及時上傳至省公司,所以需要從FTP傳輸日志中提取傳輸成功的點鈔設(shè)備的IP和最新傳輸時間。
用戶需要根據(jù)網(wǎng)點點鈔設(shè)備的點鈔數(shù)量了解所有設(shè)備的工作狀態(tài),所以需求提取點鈔過程信息文件中鈔票號碼、過鈔時間。
需要建立一套簡便的人機(jī)交互系統(tǒng),用戶通過系統(tǒng)能夠直觀地了解所有網(wǎng)點設(shè)備的運(yùn)行狀態(tài),并設(shè)定相應(yīng)報警閥值,提醒用戶及時對設(shè)備進(jìn)行維修和保養(yǎng)。
算法設(shè)計
網(wǎng)點業(yè)務(wù)系統(tǒng),通過FTP軟件傳輸后的日志文件,可以從中提取設(shè)備IP以及最近一次文件傳輸?shù)娜掌跁r間。圖1是一份完整數(shù)據(jù)傳輸過程,該過程每行為一條FTP命令以及命令的返回信息。
從圖2文件內(nèi)容的結(jié)構(gòu)分析可知,每一行代表一次完整FTP傳輸命令,包含傳輸序號、時間戳、設(shè)備IP和傳輸命令或者命令反饋,一個完整的數(shù)據(jù)文件傳輸從“Connected on”為開始,“disconnected”為結(jié)束,數(shù)據(jù)傳輸成功的標(biāo)志為“Suc-cessfully transferred”;要提取相應(yīng)的關(guān)鍵數(shù)據(jù)可以用函數(shù)“POS()”提取標(biāo)志為“Successfully transferred”的數(shù)據(jù)行,則第一個空格與第二個空格之間即為傳輸日期時間,第二對括號之間為客戶端設(shè)備IP。
算法說明:
算法開始,打開日志文件;
按順序搜索日志文件中,帶標(biāo)識“Successfully transferred”的數(shù)據(jù)行;
使用函數(shù)“POS()”提取第一個空格和第二個空格間的字符串,并判斷其是否符合日期時間格式;
使用函數(shù)“POS()”提取第二對括號間的字符串,并判斷其是否符合IP格式;
判斷提取的IP的日期時間是否是最新,如果是則替換為最新;
算法結(jié)束。
從圖3中分析可知鈔號為“CNY”與“PSBC”之間一段10位的連續(xù)大寫字母與數(shù)字組合。使用函數(shù)“POS()”,提取“CNY”與“PSBC”之間一段字符串,剔除空格符和亂碼,最后得到10位的大寫字母與數(shù)據(jù)組成的字符串可以認(rèn)為是鈔號。
算法說明:
算法開始,讀取鈔號的文件;
搜索以標(biāo)示“CNY”開始,并且以標(biāo)示“PSBC”為結(jié)束的字符串,提取中間字符串;
去除字符串中的空格和亂碼;
判斷字符串是否由大寫字母和數(shù)字組成的10位字符串;
算法結(jié)束。
在實際處理中,網(wǎng)點服務(wù)器接收過鈔設(shè)備所產(chǎn)生的數(shù)據(jù)文件最多在800個左右,平均有400個左右,每個數(shù)據(jù)文件內(nèi)包含鈔號信息平均逾500條,如果采用遍歷搜索法對程序運(yùn)行一次耗時進(jìn)行估算,應(yīng)用程序在讀取一次存儲在機(jī)械硬盤中的文件耗時約2 ms,假設(shè)需要讀取的文件數(shù)量在1~800個之間隨機(jī)分布,則程序單次運(yùn)行耗時:
(500×400)×0.002 s=400 s
這不僅影響計算機(jī)內(nèi)其它程序的運(yùn)行,也是用戶使用時無法接受的延時,故不采用遍歷設(shè)計算法,本文采用標(biāo)記算法,減少程序的延時。
核心算法說明如下:
讀取一份文件,并查找該文件名是否在儲存在臨時文本文件TEMP中;
如果存在該文件,則跳過;如果不存在該文件,則提取其中必要信息;
將提取完必要信息的文件名進(jìn)行標(biāo)記存入臨時文本文件TEMP;
算法效率估算:
最佳時間=處理第一個文件=500×0.002 s=1 s;
最可能時間=處理平均數(shù)量的最后一個文件=500×0.002 s+(400)×2×0.002 s=2.6 s;
最差時間=處理數(shù)量最多文件中最后一個文件=500×0.002 s+(800)×2×0.002 s=4.2 s;
由于用平均值法不能夠很好反應(yīng)實際運(yùn)行情況,所以采用三點估算法得出程序單次運(yùn)行時間:(1+2.6×4+4.2)/6=2.6 s
比遍歷算法效率提升約154倍。
系統(tǒng)設(shè)計
采用Delphi+SQL Server設(shè)計的C/S的結(jié)構(gòu)方式,開發(fā)人機(jī)交互系統(tǒng),該結(jié)構(gòu)成熟穩(wěn)定并且易于實現(xiàn),能夠快速部署兼容性良好,操作界面美觀便捷。
運(yùn)行環(huán)境
操作平臺:windows7/10;
內(nèi)存:2G;
硬盤:10G;
CPU:inter i3;
數(shù)據(jù)庫:SQL Server 2008。
客戶端
客戶端界需要簡捷友好,只需要在配置好正確的數(shù)據(jù)庫連接信息的情況下,程序便能夠自動運(yùn)行,無需人工干涉,并且具有開機(jī)自動運(yùn)行,自動網(wǎng)絡(luò)重連,配置異常報警等功能,運(yùn)行界面如圖4所示。
服務(wù)端
在配置好正確的數(shù)據(jù)庫連接信息后,用戶可以通過“主界面”進(jìn)入“網(wǎng)點管理”“磁盤信息”“鈔號信息”,并在程序開始運(yùn)行后,直觀地查看各網(wǎng)點數(shù)據(jù)運(yùn)行情況,分為故障、警告、無法連接和正常幾個狀態(tài),用戶可以根據(jù)相應(yīng)的圖標(biāo),對網(wǎng)點做出相應(yīng)的處理。界面如圖5所示。
“網(wǎng)點管理”用戶可以增加、修改、刪除和查看網(wǎng)點信息,并且用戶可以一覽所有網(wǎng)點基本作息。
“磁盤管理”可以向用戶展示各網(wǎng)點服務(wù)器磁盤空間大小,并在磁盤空間低于20%的情況下提示用戶。
“點鈔數(shù)據(jù)”中用戶可以查看各個網(wǎng)點、不同時間的點鈔明細(xì)、點鈔匯總,用戶可以根據(jù)明細(xì)對鈔票進(jìn)行溯源,可以根據(jù)匯總情況對點鈔設(shè)備運(yùn)行狀態(tài)進(jìn)行研判,界面如圖6所示。
效果
正確性
方法:使用50張面值100元人民幣和50張面值50元人民幣,分別在15個不同的網(wǎng)點使用點鈔機(jī)和清分機(jī)分別過鈔2次。其一:在服務(wù)端通過過鈔匯總功能查詢,系統(tǒng)應(yīng)該顯示15個網(wǎng)點的過鈔數(shù)量分別為400,單個點鈔設(shè)備的過鈔匯總為200,正確率必須為100%;其二:在服務(wù)端通過過鈔明細(xì)功能查詢,抽查其中10張面值100元人民幣和10張面值50元人民幣,系統(tǒng)應(yīng)該顯示每張人民幣在各個網(wǎng)點,各個過鈔設(shè)備上有兩條鈔號相同,過鈔時間不同的條目,正確率必須為100%。
驗證:系統(tǒng)能夠在一個用戶自定義設(shè)定好的巡查周期(5 min)內(nèi)正確上傳數(shù)據(jù)?!扳n號匯總”功能里參與實驗的15家網(wǎng)點過鈔匯總數(shù)量為400,單臺設(shè)備過鈔數(shù)量為200;“鈔號明細(xì)”里能夠查詢到抽查的所有鈔票的鈔號,并且顯示為不同時間段的2條信息。
延時:
方法:選取正常工作日3個時間點進(jìn)行評價。第一個時間點:選取網(wǎng)點業(yè)務(wù)窗口第一筆過鈔業(yè)務(wù)完成時間到服務(wù)端能夠顯示該筆業(yè)務(wù)的時間;第二個時間占:選取網(wǎng)點業(yè)務(wù)窗口下午第一筆過鈔業(yè)務(wù)完成時間到服務(wù)端能夠顯示該筆業(yè)務(wù)的時間;第二個時間占:選取網(wǎng)點業(yè)務(wù)窗口下午臨近下班時間隨機(jī)一筆過鈔業(yè)務(wù)完成時間到服務(wù)端能夠顯示該筆業(yè)務(wù)的時間。以上任一時間點系統(tǒng)延時不得大于理論最差時間(4 s)與用戶設(shè)定的定時巡查時間之和。
驗證結(jié)論:時間選某個周一,用戶設(shè)定的巡查時間為5 min;第一個時間點為9h05m56s,服務(wù)端在9h09m09s顯示該過鈔信息,并且顯示業(yè)務(wù)時間為9h05m56s;第二個時間點為13h09m32s,服務(wù)端在13h10m22s顯示該過鈔信息,并且顯示業(yè)務(wù)時間為13h09m32s;第三個時間點為16h49m02s,服務(wù)端在16h50m09s顯示該過鈔信息,并且顯示業(yè)務(wù)時間為16h49m02s;從上述數(shù)據(jù)顯示延時性滿足要求。
容錯性:
方法:斷開客戶端網(wǎng)線,30 min后重新連接,客戶端程序應(yīng)能夠重新連接服務(wù)端,并且上傳斷網(wǎng)期間所有業(yè)務(wù)數(shù)據(jù)。
驗證結(jié)論:在30 min后,客戶端能夠重新連接服務(wù)端,并且上傳斷網(wǎng)期間所有業(yè)務(wù)數(shù)據(jù),容錯性滿足要求。
經(jīng)過實踐,采用本算法所的應(yīng)用軟件,實現(xiàn)了該銀行過鈔業(yè)務(wù)的自動化監(jiān)控功能。幾個月間,省公司公布的測試地區(qū)的網(wǎng)點數(shù)據(jù)上傳完整率均在98%以上,應(yīng)用軟件多次及時向用戶告警網(wǎng)點斷線、業(yè)務(wù)系統(tǒng)異常以及過鈔設(shè)備異常等狀態(tài),管理員能夠及時根據(jù)監(jiān)控系統(tǒng)的告警針對性地解決故障,保證上傳至省公司的數(shù)據(jù)完整性和及時性,為用戶挽回了考核不合格的資金處罰和名譽(yù)損失。管理人員對網(wǎng)點過鈔狀態(tài)管理從以前耗時耗力的人工手動巡查到簡單易行的程序自動化巡查,節(jié)約了人力和時間成本,使技術(shù)人員從簡單重復(fù)的勞動中解放出來,實現(xiàn)了銀行業(yè)務(wù)的計算機(jī)程序自動化監(jiān)控。