点钞设备工作动态的自动化监控
2021-02-11邱智飞
邱智飞
计算机软件已经成为人们生活工作中不可缺少的一部分,它能够辅助人们便捷地完成多种工作,将劳动者从重复繁琐的工作中解放出来。该设计方针对某银行点钞业务系统特点,提出了独立于业务系统之外的监控点钞状态解决方案。本方案的软件运行基于Windows平台,采用C/S结构,使用SQL Server作为数据库。软件可以根据业务系统运行过程中产生的日志文件,分析并上传业务系统的实时状态,管理人员可以根据数据或者软件提示及时对设备进行维护、维修,最后通过一系列评价方式对软件进行评价,验证软件的实用性。
环境
某国有企业的市级公司在本区域业务涉及不同县市的89个分支银行网点,每个网点有数据服务器、业务电脑,网点网络通过广域网连接至市级公司,市级公司通过交换路由设备连接至省级公司,该市级公司的网点在日常业务办理中需要使用点钞机、清分机对收纳的钞票进行点数、清理,点钞机、清分机在本网点内,通过局域网将过钞数据上传至本网点服务器,本网点服务器再通过FTP将汇总的过钞信息通过业务软件上传至省公司数据库。
省公司信息中心每月对各网点过钞信息进行分析清理,并将网点的点钞机、清分机运行状态、数据上传完整度和及时度等指标作为对市公司信息中心的业绩考核指标之一,网点数据上传完整率=(网点1×实际工作天数+网点2×实际工作天数+网点3×实际工作天数+……+网点89×实际工作天数)/(网点1×应工作天数+网点2×应工作天数+网点3×应工作天数+……+网点89×应工作天数)×100%,上传完整率为100 %则为优秀,小于100 %大于95 %为一般,小于95 %大于90 %为合格,低于90 %为不合格,如果市级公司网点数据上传完整率为不合格将受到处分。因此,市级公司信息中心管理人员必须每天不定时通过远程桌面登录每个网点的数据服务器,手动检查数据是否及时上传。
问题
用户需要每天对89个网点多次进行手工巡查,单个网点需要检查的内容较多,需要占用一定人力资源,且重复简单劳动消耗了管理人员宝贵的工作时间。
手工巡查制度受到实施人员技术、情绪和责任心等因素影响,该方法不利于长期维持。
手工巡查时间间隔大,无法实时监测网点数据上传状态,不能及时处理发生的故障。
本市级公司网点数据上传完整率已经连续2个月被评为不合格,受到了严厉处分,数据上传完整率不合格的问题亟待解决。
可行性
网点上传的数据存放路径固定,存储的数据格式统一,关键信息存在一定排列规律,数据文件读取权限开放,所以需要单独开发一款计算机程序,通过设计相应的程序算法,提取其中上传时间、设备IP等关键信息,再通过数据库语言以直观的形式展示给用户,从而解决问题。
用计算机软件完成重复任务比人工更有优势,用户经过简单培训即可操作,不需要专业知识,软件维护费用低、节约人力成本,不存在疲劳、厌倦等人类的生理缺陷,能够长效执行任务。
面向对象的程序设计语言技术成熟,开发周期短、容错性强、程序界面美观并且各种操作与用户交互便捷。
适应时代的数字化趋势,有利于推动行业数字化进程,对行业信息化的长足发展起到了推波助澜的作用。
难点
用户需要了解所有网点的业务系统是否及时将点钞机的工作数据及时上传至省公司,所以需要从FTP传输日志中提取传输成功的点钞设备的IP和最新传输时间。
用户需要根据网点点钞设备的点钞数量了解所有设备的工作状态,所以需求提取点钞过程信息文件中钞票号码、过钞时间。
需要建立一套简便的人机交互系统,用户通过系统能够直观地了解所有网点设备的运行状态,并设定相应报警阀值,提醒用户及时对设备进行维修和保养。
算法设计
网点业务系统,通过FTP软件传输后的日志文件,可以从中提取设备IP以及最近一次文件传输的日期时间。图1是一份完整数据传输过程,该过程每行为一条FTP命令以及命令的返回信息。
从图2文件内容的结构分析可知,每一行代表一次完整FTP传输命令,包含传输序号、时间戳、设备IP和传输命令或者命令反馈,一个完整的数据文件传输从“Connected on”为开始,“disconnected”为结束,数据传输成功的标志为“Suc-cessfully transferred”;要提取相应的关键数据可以用函数“POS()”提取标志为“Successfully transferred”的数据行,则第一个空格与第二个空格之间即为传输日期时间,第二对括號之间为客户端设备IP。
算法说明:
算法开始,打开日志文件;
按顺序搜索日志文件中,带标识“Successfully transferred”的数据行;
使用函数“POS()”提取第一个空格和第二个空格间的字符串,并判断其是否符合日期时间格式;
使用函数“POS()”提取第二对括号间的字符串,并判断其是否符合IP格式;
判断提取的IP的日期时间是否是最新,如果是则替换为最新;
算法结束。
从图3中分析可知钞号为“CNY”与“PSBC”之间一段10位的连续大写字母与数字组合。使用函数“POS()”,提取“CNY”与“PSBC”之间一段字符串,剔除空格符和乱码,最后得到10位的大写字母与数据组成的字符串可以认为是钞号。
算法说明:
算法开始,读取钞号的文件;
搜索以标示“CNY”开始,并且以标示“PSBC”为结束的字符串,提取中间字符串;
去除字符串中的空格和乱码;
判断字符串是否由大写字母和数字组成的10位字符串;
算法结束。
在实际处理中,网点服务器接收过钞设备所产生的数据文件最多在800个左右,平均有400个左右,每个数据文件内包含钞号信息平均逾500条,如果采用遍历搜索法对程序运行一次耗时进行估算,应用程序在读取一次存储在机械硬盘中的文件耗时约2 ms,假设需要读取的文件数量在1~800个之间随机分布,则程序单次运行耗时:
(500×400)×0.002 s=400 s
这不仅影响计算机内其它程序的运行,也是用户使用时无法接受的延时,故不采用遍历设计算法,本文采用标记算法,减少程序的延时。
核心算法说明如下:
读取一份文件,并查找该文件名是否在储存在临时文本文件TEMP中;
如果存在该文件,则跳过;如果不存在该文件,则提取其中必要信息;
将提取完必要信息的文件名进行标记存入临时文本文件TEMP;
算法效率估算:
最佳时间=处理第一个文件=500×0.002 s=1 s;
最可能时间=处理平均数量的最后一个文件=500×0.002 s+(400)×2×0.002 s=2.6 s;
最差时间=处理数量最多文件中最后一个文件=500×0.002 s+(800)×2×0.002 s=4.2 s;
由于用平均值法不能够很好反应实际运行情况,所以采用三点估算法得出程序单次运行时间:(1+2.6×4+4.2)/6=2.6 s
比遍历算法效率提升约154倍。
系统设计
采用Delphi+SQL Server设计的C/S的结构方式,开发人机交互系统,该结构成熟稳定并且易于实现,能够快速部署兼容性良好,操作界面美观便捷。
运行环境
操作平台:windows7/10;
内存:2G;
硬盘:10G;
CPU:inter i3;
数据库:SQL Server 2008。
客户端
客户端界需要简捷友好,只需要在配置好正确的数据库连接信息的情况下,程序便能够自动运行,无需人工干涉,并且具有开机自动运行,自动网络重连,配置异常报警等功能,运行界面如图4所示。
服务端
在配置好正确的数据库连接信息后,用户可以通过“主界面”进入“网点管理”“磁盘信息”“钞号信息”,并在程序开始运行后,直观地查看各网点数据运行情况,分为故障、警告、无法连接和正常几个状态,用户可以根据相应的图标,对网点做出相应的处理。界面如图5所示。
“网点管理”用户可以增加、修改、删除和查看网点信息,并且用户可以一览所有网点基本作息。
“磁盘管理”可以向用户展示各网点服务器磁盘空间大小,并在磁盘空间低于20%的情况下提示用户。
“点钞数据”中用户可以查看各个网点、不同时间的点钞明细、点钞汇总,用户可以根据明细对钞票进行溯源,可以根据汇总情况对点钞设备运行状态进行研判,界面如图6所示。
效果
正确性
方法:使用50张面值100元人民币和50张面值50元人民币,分别在15个不同的网点使用点钞机和清分机分别过钞2次。其一:在服务端通过过钞汇总功能查询,系统应该显示15个网点的过钞数量分别为400,单个点钞设备的过钞汇总为200,正确率必须为100%;其二:在服务端通过过钞明细功能查询,抽查其中10张面值100元人民币和10张面值50元人民币,系统应该显示每张人民币在各个网点,各个过钞设备上有两条钞号相同,过钞时间不同的条目,正确率必须为100%。
验证:系统能够在一个用户自定义设定好的巡查周期(5 min)内正确上传数据。“钞号汇总”功能里参与实验的15家网点过钞汇总数量为400,单台设备过钞数量为200;“钞号明细”里能够查询到抽查的所有钞票的钞号,并且显示为不同时间段的2条信息。
延时:
方法:选取正常工作日3个时间点进行评价。第一个时间点:选取网点业务窗口第一笔过钞业务完成时间到服务端能够显示该笔业务的时间;第二个时间占:选取网点业务窗口下午第一笔过钞业务完成时间到服务端能够显示该笔业务的时间;第二个时间占:选取网点业务窗口下午临近下班时间随机一笔过钞业务完成时间到服务端能够显示该笔业务的时间。以上任一时间点系统延时不得大于理论最差时间(4 s)与用户设定的定时巡查时间之和。
验证结论:时间选某个周一,用户设定的巡查时间为5 min;第一个时间点为9h05m56s,服务端在9h09m09s显示该过钞信息,并且显示业务时间为9h05m56s;第二个时间点为13h09m32s,服务端在13h10m22s显示该过钞信息,并且显示业务时间为13h09m32s;第三个时间点为16h49m02s,服务端在16h50m09s显示该过钞信息,并且显示业务时间为16h49m02s;从上述数据显示延时性满足要求。
容错性:
方法:断开客户端网线,30 min后重新连接,客户端程序应能够重新连接服务端,并且上传断网期间所有业务数据。
验证结论:在30 min后,客户端能够重新连接服务端,并且上传断网期间所有业务数据,容错性满足要求。
经过实践,采用本算法所的应用软件,实现了该银行过钞业务的自动化监控功能。几个月间,省公司公布的测试地区的网点数据上传完整率均在98%以上,应用软件多次及时向用户告警网点断线、业务系统异常以及过钞设备异常等状态,管理员能够及时根据监控系统的告警针对性地解决故障,保证上传至省公司的数据完整性和及时性,为用户挽回了考核不合格的资金处罚和名誉损失。管理人员对网点过钞状态管理从以前耗时耗力的人工手动巡查到简单易行的程序自动化巡查,节约了人力和时间成本,使技术人员从简單重复的劳动中解放出来,实现了银行业务的计算机程序自动化监控。