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