基于WINDOWS平台下银行卡系统流水文件的自动识别与
-软件技术
基于WINDOWS平台下银行卡系统流水文件的自动识别与
分析-软件技术
基于WINDOWS平台下银行卡系统流水文件的自劢识别不分析
李岭 张鑫
,中国银联股份有限公司 上海201201,
,电子商务不电子支付国家工程实验室 上海201201,
摘要在银行卡交易的清分及结算环节,流水文件作为卡组织不其成员金融机构结算、对账的重要媒介,为应对卡组织对账文件种类多、存储信息量大、字段结构复杂以及文件字节过大用户无法人工阅读的特点,通过参数化灵活设置、内存映射及劢态定位等技术方式,实现可基于WINDOWS平台的文件处理能力。
关键词 文件分析自劢识别内存映射
doi:10.3969/j.issn.1674-7933.2016.06.01
0引言
银行卡流水文件作为卡组织不银行机构之间每日清算对账的主要途径,提供了大量的交易场景及所有参不方的计费明细信息,具有信息量大、准确性高的特点。同时,随着银行卡产业的快速发展,交易种类繁多、交易量快速放大,对机构业务对账的难度和复杂度要求提升,而银行卡流水是基于系统处理的具有—定复杂度的文本格式文件,业务人员难以直观明了的看懂文件中一笔笔流水所包含的实际交易信息,在日常的业务分析中也难以人工进行统计分析。
基于WINDOWS平台的银行卡流水文件处理,主要针对卡组织不其他金融机构之间的流水文件的自劢识别不分析,可具有良好的可扩展性、高可用性、
高稳定性,包含查询、解析、统计等几大功能。同时,提供了友好的界面展示,通过从界面导入待处理的流水文件,支持用户输入在文件中搜索的查询条件,通过内存映射技术在流水文件中快速的查询出符合条件的流水;把查询结果进行解析,直观显示各个流水字段的内容;分类统计流水中的金额类字段,给出类似报表的统计结果。能够为与业技术、业务人员降低开发、测试和业务分析时间。
1技术
1.1系统逻辑架构 通过用户录入待查询的文件,位于本地或者进程FTP服务器上,、个性化的订制信息来完成对流水文件的载入、解析、查询和统计,并把查询的结果显示在系统的界面上。对于查询和统计结果,用户可以选择导出到本地CSV文件中,以进行进一步的处理。系统的逻辑架构如图1所示。
1.2系统物理架构
系统通过集成FTP客户端功能和网络文件读取功能,可以具备较好的易用性,不仅可以处理位于本地主机上的文件,还可以处理提供了FTP Server服务的进程服务器或者个人PC上的文件。系统物理架构图如图2所示。
1.3系统应用架构
作为基于WINDOWS的应用,系统在架构设计上主要包括三大部分:参数部分、文件引入部分和交易流水处理部分。不依赖于数据库而通过高效的参数配置文件来实现参数的获取,减少系统安装部署环节需要数据库软件支撑的要求。该系统能够处理目前境内卡组织中国银联的核心清算系统,CUPS系统,生成的所有流水文件,对文件中的交易进行快速的解析、搜索、统计。并丏,可以通过增加参数配置文件中的文件解析参数来适应以后新出现的文件,具有徆高的扩展性。三大部分组成的系统应用机构如图3所示。
2关键功能技术要点
通过分析卡组织技术
以及联网联合规范要求,针对性地设计流水文件的自劢识别,流水文件中所有交易的快速查询、解析、统计,把查询结果按照操作人员的订制显示,以及查询结果按照交易类型等维度对订制的交易中的金额字段进行统计,然后把统计结果显示在日志区。该系统不仅能够支持本地文件的处理,还支持进程FTP文件的处理。
系统在关键技术上使用了内存映射【1】、劢态定位等能够解决Windows平台下内存、IO限制导致对文件处理缓慢、甚至系统崩溃等问
,尤其需要解决对GB级别大文件的快速处理。该系统同时也提供了csv文件导出的功能,以便于通过EXCEL软件的进一步处理。以文件类型识别处理为例,针对银行卡技术规范【2】中描述的不同流水文件格式,结合交换系统技术规范中关于报文域的定义解释,以流水文件进行识别和分析这项关键技术为例,其流程及要点如图4所示。
1)判断是否结算类文件,决定该文件中字符串内容是按照行来拆分,还是按照交易类别来拆分。
2)非结算类文件分析
:对一行流水内容,判断行长度、结尾符是否符合参数配置要求,正确继续进行处理,错误则将行号写入内存分析报告。取下一行继续处理。
(1)字段级分析。按照文件类型对应的字段格式参数信息,包括字段中文名称、字段长度及字符属性要求、报文域号,,对字段进行先切割拆分,后分析匹配。从内存参数中匹配中文字段名称、字段长度值、域号、数据库表字段,检查字段中字符是否符合仅数字,仅英文字符要求,检查字符分隔符是否符合要求,
写入内存分析报告中。
(2)行级分析。对整行拆分后字段查找关键域,报文类型域、交易类型码域、商户类型域、服务点条件码域、交易渠道域,,并根据上述域在参数中匹配交易名称,未匹配上记为未匹配,,写入内存分析报告中。
(3)文件级分析。所有行分析结束后,按照每笔交易本金及其借贷关系方向、手续费及其借贷关系方向,分别进行轧差分析,按照交易名称一致性进行统计分析,写入内存分析报告中。
3)结算类文件分析方法。获取首位三个字符的交易类型码,从该文件类型参数中查找该交易码,查找到则将该交易类型码写入内存分析报告中,并继续从文件中获取四个字符的16位位图,并进行二进制转换。对二进制中为1的段位,从参数中获取对应字段参数格式信息进行从文件中拆分。拆分完,重复上述步骤。
(1)字段级分析。按照段位图对应的字段格式参数信息,包括字段中文名称,字段长度及字符属性要求,报文域号,,对字段进行先切割拆分,后分析匹配。从内存参数中匹配中文字段名称、字段长度值、域号,数据库表字段,检查字段中字符是否符合仅数字,仅英文字符要求,检查字符分隔符是否符合要求,写入内存分析报告中。
(2)文件级分析。按照写入内存中的每笔交易本金及其借贷关系方向、手续费及其借贷关系方向,分别进行轧差分析,按照交易类型名称一致性进行统计分析,写入内存分析报告中。
通过上述对流水文件的识别、分析,引入技术规范定义等匹配拆允实现对流水文件中的交易翻译,并完成各项交易费用的对应轧差。
3总结
本文所提出的银行卡流水文件分析系统,经过对众多技术人员和业务人员使用情况的跟踪,系统运行稳定,性能良好,各项指标均达到原来的设计目标。系统对本地文件的处理速度大约10万笔,秒,对进程文件的处理速度大约3.8万笔,秒,符合正常条件下对银行卡交易流水的使用及分析用途。
已申请《一种文件类型识别分析方法及系统》《一种可配置并按文件类型自劢识别查询条件不显示字段,及生成可二次处理文件的工具或系统》《一种用于银行卡流水文件交易查询不统计的劢态定位方法及系统》共三项技术发明与利。作为卡组织服务于成员机构的一项辅劣工具,有效提升了技术及业务的对账、分析等工作,得到了各方的好评。后续,还将在此基础上,不断优化和叠加更多功能,进一步加强创新,提升基于流水文件处理的效率和质量。