一种数据核对脚本生成方法、装置及设备
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据核对脚本生成方法、装置及设备。
背景技术
在交易过程中,根据业务的需要,会对业务数据进行核对处理。例如在电子交易领域,交易双方通过第三方支付系统实现网上交易,该第三方支付系统就需要通过对账系统与参与交易的银行系统进行对账处理。对账处理是对前一个清算周期的交易信息进行核对,以确认交易信息的一致性和正确性。
现有技术中,通过数据核对来解决由于系统异常导致的用户资金损失的问题。在执行数据核对的过程中,现有的方案是针对每一个核对系统编写一个数据核对脚本,开发人员针对待核对的数据编写对应的核对脚本进行核对。但是随着服务平台业务量的增多,需要核对的数据的量大大增加,在一些情况下,在核对多个系统时,针对各个系统编写的脚本仅仅是表名不同或者某一字段不同,但是针对多个系统编写的多个脚本的核对逻辑不变,此时,增加了数据开发人员的工作量,产生了不必要的重复劳动,导致业务系统之间的数据核对效率较低。
发明内容
有鉴于此,本申请实施例提供了一种数据核对脚本生成方法、装置及设备,用于支持不同场景的业务数据核对,提高数据核对效率。
为解决上述技术问题,本说明书实施例是这样实现的:
本说明书实施例提供的一种数据核对脚本生成方法,包括:
获取配置表中的配置信息;
根据所述配置信息确定至少一个数据核对脚本模板;
从所述数据核对脚本模板中确定与所述配置信息对应的可配置变量;
根据所述配置信息,将所述可配置变量替换为所述配置信息中的具体核对字段,得到数据核对脚本。
本说明书实施例提供的一种数据核对脚本生成装置,包括:
配置信息获取模块,用于获取配置表中的配置信息;
数据核对脚本模板确定模块,用于根据所述配置信息确定至少一个数据核对脚本模板;
可配置变量确定模块,用于从所述数据核对脚本模板中确定与所述配置信息对应的可配置变量;
替换模块,用于根据所述配置信息,将所述可配置变量替换为所述配置信息中的具体核对字段,得到数据核对脚本。
本说明书实施例提供的一种数据核对脚本生成设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
获取配置表中的配置信息;
根据所述配置信息确定至少一个数据核对脚本模板;
从所述数据核对脚本模板中确定与所述配置信息对应的可配置变量;
根据所述配置信息,将所述可配置变量替换为所述配置信息中的具体核对字段,得到数据核对脚本。
本说明书实施例采用的上述至少一个技术方案能够达到以下有益效果:当需要进行数据核对时,开发人员只需要编辑配置表,获取配置信息,将具体的待核对字段抽象为配置表中的可配置变量,并根据所述配置信息,将所述可配置变量替换为所述配置信息中的具体核对字段,得到数据核对脚本,即可快速支持不同场景的业务核对,能大大减少开发成本,提高数据核对效率。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本说明书实施例1提供的一种数据核对脚本生成方法的流程示意图;
图2为本说明书实施例2提供的可加变量核对脚本生成方法的流程示意图;
图3为本说明书实施例3提供的指定字段核对脚本生成方法的流程示意图;
图4为本说明书实施例4提供的关联度核对脚本生成方法的流程示意图;
图5为本说明书实施例提供的对应于图1的一种数据核对脚本生成装置的结构示意图;
图6为本说明书实施例提供的对应于图1的一种数据核对脚本生成设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
以下结合附图,详细说明本申请各实施例提供的技术方案。
实施例1
图1为本说明书实施例1提供的一种数据核对脚本生成方法的流程示意图。从程序角度而言,流程的执行主体可以为搭载于应用服务器的程序或应用客户端。
如图1所示,该流程可以包括以下步骤:
一种数据核对脚本生成方法,包括:
步骤S101:获取配置表中的配置信息。
配置表是由开发人员提前编写的通用模板,开发人员可以根据具体的核对场景对配置表进行编辑,将待核对的数据信息填入编辑表中的相应位置。
配置信息为用户在配置表中编辑的变量,更为具体的,配置信息为具体的待核对业务系统中的待核对信息,例如:需要核对两个系统中某一用户在某个时间段内的资金往来,在该时间段内该用户在两个系统中的数据记录均属于配置信息。其中,配置表可以采用下表进行说明:
表1
表1是配置表,如表1所示,配置表中包含了三种待核对类型,以及每一种待核对类型对应的配置信息模板,还包括了左表与右表关联之后冗余的一方以及预设阈值。
其中,配置表中的列表头中,left_segments表示左表;右表用right_segments来表示;monitor表示核对类型;memo所在列对应的内容表示的是待核对的系统,例如:入账账单VS日账单,表示两个待核对系统为入账账单系统与日账单系统;dumplicate表示左表与右表关联之后冗余的一方(即关联后,剩余的信息条数较多的一方),用right/left表示,right表示右关联,left表示左关联;threshold表示核对结果输出的阈值,用户可以对该阈值进行预先设置,填入表中,例如:表中设置可加变量核对对应的预设阈值为0,关联度核对对应的预设阈值为0.5。
表中的join_key表示主键,table表示表名,mesurement表示需要确定的关联度;可加变量对应的行标签表示第一行,指定字段对应的行标签表示第二行,关联度对应的行标签表示第三行;segments代表输出结果需要展示的其他字段列表,cmp代表待比较的字段。
步骤S102:根据所述配置信息确定至少一个数据核对脚本模板。
数据核对脚本模板可以是实用报表提取语言(Practical Extraction andReport Language,简称Perl)脚本,Perl借取了C、sed、awk、shell脚本语言以及很多其他程序语言的特性,其中最重要的特性是它内部集成了正则表达式的功能,以及巨大的第三方代码库CPAN(Comprehensive Perl Archive Network),中译为“Perl综合典藏网”,“Perl综合档案网”或者“Perl程序库”。它包含了极多用Perl写成的软件和其他文件。
数据核对脚本模板为开发人员(或用户)预先编写的,在确定数据核对脚本模板时,只需要获取开发人员在配置表中对哪一行进行编辑,即可对应出被编辑行对应的数据核对脚本模板,在进行核对时,根据具体的核对信息选择核对脚本,一次核对可选择多个核对脚本。各个核对类型可以各自对应一个核对脚本,也可以多个核对类型对应一个核对脚本,三种核对类型对应的核对脚本都存储在数据库中,用户根据实际需要从数据库中选取对应的核对脚本进行核对。例如:开发人员(或用户)对表1进行编辑,具体的,是对表1的第二行(指定字段)中对应的配置信息进行了替换,此时,即可确定数据核对脚本模板为:指定字段核对脚本。或者开发人员对表1中的第一行和第三行都进行了编辑,此时,确定数据核对脚本模板为:可加变量核对脚本和关联度核对脚本。
步骤S103:从所述数据核对脚本模板中确定与所述配置信息对应的可配置变量。
核对脚本模板由开发人员提前编写好存储在数据库中,数据核对脚本模板中对应有代码模板,根据所述配置信息确定出数据核对脚本模板中的可配置变量。
例如:配置信息为table:表名A对应的标识,join-key:用户证件号的具体数字sements:用户转账的时间、转账对象等信息,cmp:具体转账金额,此时,根据配置信息可以知道数据核对脚本模板中的可配置变量可以为数据核对脚本模板中对应“table”、“join-key”、“sements”、“cmp”的变量信息。
步骤S104:根据所述配置信息,将所述可配置变量替换为所述配置信息中的具体核对字段,得到数据核对脚本。所述具体核对字段为所述配置信息中对应的核对字段。
将数据核对脚本模板中的“table”、“join-key”、“sements”、“cmp”对应的可配置变量替换为可配置信息中具体的待核对字段,即可得到一段可运行的数据核对脚本。
在实际应用中,确定数据核对脚本模板时,可以首先确定所述配置信息对应的待核对类型;所述待核对类型包括可加变量、指定字段以及关联度;然后再根据所述待核对类型确定至少一个数据核对脚本模板。
更为具体的,所述确定所述配置信息对应的待核对类型,具体可以包括:
确定所述配置信息在配置表中对应的行标签;
根据所述行标签确定待核对类型。
需要说明的是,在根据配置信息确定核对类型时,直接根据配置信息填入的位置,判断配置信息填入的行标签,即只需要获取配置信息填入了哪一行,就能获取该行对应的核对类型,如表1所示,所述核对类型包括可加变量核对、指定字段核对、关联度核对。当开发人员将待配置信息填入到第一行中的左表和右表中时,代表需要核对的系统为入账账单系统与日账单系统,核对的类型为:可加变量核对。
其中,可加变量表示可以进行叠加的变量,可以包括:交易金额、交易笔数等。例如:待核对信息可以为:日消费金额、月消费金额、周消费笔数或月消费笔数等等。
指定字段指的是用户指定需要核对的字段,例如:商品交易中商品类型、商家信息,买家的用户ID以及交易日期等等。
例如:某交易系统的上游系统中显示的交易商品为水彩笔,金额为30元,交易日期为2019年1月2日,交易双方为商家A与用户B;下游系统中显示的交易商品为蜡笔,金额为40元,交易日期为2019年1月2日,交易双方为商家A与用户B,此时,上游系统与下游系统在进行核对时,可以指定核对金额、商品类型或者交易日期等。并将金额、商品类型或者交易日期等信息填入表1(配置表)的第二行(指定字段)对应的左表和右表中。从而确定采用指定字段核对脚本模块。
关联度指的是两个系统之间关联的程度,在某些情况下也可以指的是两个系统之间的相似程度。用于检测上下游数据表的关联性,检测上下游数据的可追溯性。所述关联度可以采用下面的例子进行说明:
每一个表中都可以有一个主键,主键(primary key)又叫主关键字,表中经常有一个列或列的组合,其值能唯一地标识表中的每一行。这样的一列或多列称为表的主键。一个表只有一个主键。主键可以由一个字段,也可以由多个字段组成,分别成为单字段主键或多字段主键。因此,在确定两表的关联度时,主要确定主键关联,其原理是两张表的主键(ID)保持一致,在获取的时候根据两种表中的ID相同来作为关系判断的标准。
例1:如果上游系统为某购物平台,下游系统为某支付平台,用户在上游系统拍下订单时,会生成一个订单号A,当用户针对该订单进行支付操作时,会跳转到支付平台进行支付,此时,在支付系统中会生成一个内部单号B,该内部单号B与上游系统中的订单号A存在一一对应的关系,内部单号B与上游系统中的订单号A之间的关联关系可以用一个关联号X来表示,此时,上游系统(某购物平台)与下游系统(某支付平台)之间的关联度可以用关联号X来表示,这里的关联号即可以作为主键(主关键字)。
例2:在银行业务中,涉及到将银行对账单上总的余额与银行存款日记账上总的余额进行核对,此时待核对数据中包括交易日期、交易对象、客户身份ID(或者用户证件号)以及客户对应的金额操作,此时,将能唯一识别用户的客户身份ID(或者用户证件号)作为主键来进行关联度确定。
除了本方案中采用的perl脚本,也可以采用其他语言脚本,如java用户定义函数(user defined function,简称udf)实现配置表解析,获取配置参数,然后替换模版参数等。
图1中的方法,通过将三种数据核对模式对应的数据核对脚本模板(perl脚本)存储在数据库中,生成一套通用模版,在进行核对时,开发人员直接编辑配置表,将待核对信息填入配置表中的相应位置,将具体的核对字段抽象为可配置变量,通过perl脚本实现数据脚本模块中的可配置变量的替换,最终实现秩序对配置表进行简单编辑配置,即可快速支持不同场景的业务核对,减少开发成本,提到核对效率。
基于图1的方法,本说明书实施例还提供了该方法的一些具体实施方案,下面进行说明。
实施例2
图2为本说明书实施例2提供的可加变量核对脚本生成方法的流程示意图,如图2所示,一种可加变量核对脚本生成方法,可以包括:
S201:从配置表中获取可加变量;
S202:确定所述可加变量在配置表中对应的可加变量核对脚本模板;
S203:从所述可加变量核对脚本模板中确定与所述可加变量对应的可配置变量;
S204:将所述可配置变量替换为所述可加变量对应的具体核对字段,得到可加变量数据核对脚本。
银行在进行财务核对时,一般是指帐-帐、帐-证、帐-实之间的核对,帐-帐是指总帐和明细帐核对,帐-证是指帐簿和记帐凭证之间的核对,帐-实是指科目余额和发生额要与实际发生额和余额进行核对,可以是每日核对或者定期核对,一般情况下,首先核对账单、日记账的余额是否一致,若余额一致,接着筛选其中几笔资金交易的日期、凭证号、金额;若余额不一致,核查是否有未达账项等等。在具体应用中,根据实际需要核对的信息选择对应的核对脚本。
例如:某用户通过银行转账,在2018年11月22日上午9:00以及商务10:00分别将账户A中的800元转入账户B中,此时,为了对用户的资金损失进行防控,此时,可能需要对两个系统(交易系统与账单系统)中的交易数据进行核对。如下表所示:
表2
表2为系统财务信息明细表。如表2所示,系统A中的信息表示交易系统中转账凭证上用户实际转账信息,系统B中的信息表示交易系统中的账目流水上显示的用户转账信息,从上表中的信息中可以看出,用户ID、转账时间、交易类型均相同,交易金额不同,属于可加变量统计值的核对情况,此时,将表2中的配置信息对应填入表1中的第一行可以选用可加变量核对脚本进行核对。
在得到可加变量核对脚本后,需要运行可加变量核对脚本,实现数据核对,具体的核对过程可以包括:
根据所述配置表中的主键、其余字段以及可加变量的维度对第一待核对业务系统对应的左表以及第二待核对业务系统对应的右表中的数据进行去重,确定存在差异的可加变量;
对所述左表中的可加变量进行累加,得到第一变量累加值;
对所述右表中的可加变量进行累加,得到第二变量累加值;
比较所述第一变量累加值与所述第二变量累加值,得到差异值;所述差异值为所述第一变量累加值与所述第二变量累加值的差值;
判断所述差异值是否超出第一预设阈值,得到判断结果;所述第一预设阈值包含在所述配置信息中;预设阈值可以是由开发人员或用户在每次编辑配置表时,与所述配置信息一起填入配置表中的。
当所述判断结果表示所述差异值超出所述第一预设阈值时,确定所述第一待核对业务系统与所述第二待核对业务系统中至少有一个业务系统出现数据异常。
以表2中的数据为例,对上述运行可加变量脚本进行说明:
首先对表2中的数据进行去重时,主键为用户的ID、其余字段可以是除主键外的所有信息,可加变量的维度可以是交易时间、交易类型,可加变量为金额。去重方式可以采用group by去重。其中,group by可以理解为:根据(by)一定的规则进行分组(Group),通过一定的规则将一个数据集划分成若干个小的区域,然后针对若干个小区域进行数据聚合统计。
对表2中的数据进行去重,得到存在差异的可加变量为左表(系统A)和右表(系统B)中的金额;左表金额为500元、300元,右表金额为500元、500元,对左表中的金额进行累加(500元+300元),得到第一变量累加值为800元;对右表中的金额进行累加(500元+500元),得到第二变量累加值1000元;比较第一变量累加值(800元)与所述第二变量累加值(1000元),得到差异值为200元;假设第一预设阈值为不超出20元,判断得到差异值200元>第一预设阈值20元,以此能确定系统A与系统B中至少存在一个系统出现异常,此时,若以B系统为准,即B系统中的数据正常,则说明系统A中的数据异常。
实施例3
图3为本说明书实施例3提供的指定字段核对脚本生成方法的流程示意图,如图3所示,一种指定字段核对脚本生成方法,可以包括:
S301:从配置表中获取指定字段;
S302:确定所述指定字段在配置表中对应的指定字段核对脚本模板;
S303:从所述指定字段核对脚本模板中确定与所述指定字段对应的可配置变量;
S304:将所述可配置变量替换为所述指定字段,得到可加变量数据核对脚本。
在生成指定字段核对脚本后,需要运行指定字段核对脚本,实现数据核对,具体的核对过程可以包括:
根据所述配置表中的主键、其余字段以及可加变量的维度对第一待核对业务系统对应的左表以及第二待核对业务系统对应的右表中的数据进行去重,确定存在差异的指定字段;
将所述左表和右表相比,确定存在差异的指定字段的数量;
判断所述指定字段的数量是否超出第二预设阈值,得到判断结果;所述第二预设阈值包含在所述配置信息中;
当所述判断结果表示所述差异值超出所述第二预设阈值时,确定所述两个待核对业务系统中至少有一个业务系统出现数据异常。
例如:
表3
表3为系统业务信息明细表,如图3所示,根据所述配置表中的主键、其余字段以及可加变量的维度对系统A和系统B中的数据进行去重,确定存在差异的指定字段为:时间(具体为交易时间)和类型(具体为交易类型);
将左表和右表相比,确定存在差异的指定字段的数量,当指定字段为时间和类型时,存在差异的指定字段数量为2,假设第二预设阈值为不大于1,此时,存在差异的指定字段数量>第二预设阈值,因此确定所述两个待核对业务系统中至少有一个业务系统出现数据异常。
实施例4
图4为本说明书实施例4提供的关联度核对脚本生成方法的流程示意图。
如图4所示,一种关联度核对脚本生成方法,可以包括:
S401:从配置表中获取关联度信息;
S402:确定所述关联度信息在配置表中对应的关联度核对脚本模板;
S403:从所述关联度核对脚本模板中确定与所述关联度信息对应的可配置变量;
S404:将所述可配置变量替换为所述关联度信息对应的具体核对字段,得到关联度数据核对脚本。
在生成关联度核对脚本后,需要运行关联度核对脚本,实现数据核对,具体的核对过程可以包括:
根据所述配置表中的主键对第一待核对业务系统对应的左表以及第二待核对业务系统对应的右表中的数据进行去重,分别确定所述左表和右表中剩余的主键条数;所述左表中剩余的主键在右表中不存在,所述右表中剩余的主键在左表中不存在;
计算所述左表中剩余的主键条数在左表主键总条数中所占的比例,得到右表的缺失率;
计算所述右表中剩余的主键条数在右表主键总条数中所占的比例,得到左表的缺失率;
当所述左表的缺失率超出所述第三预设阈值时,确定所述左表对应的第一待核对系统出现数据异常;所述第三预设阈值包含在所述配置信息中;
当所述右表的缺失率超出所述第三预设阈值时,确定所述右表对应的第二待核对系统出现数据异常。
例如:某买家C在某购物平台购买鼠标,点击购买后,生成的订单信息中显示花费200,交易时间为2019年1月1日,订单号为X,针对该订单进行支付时,页面跳转到某支付平台进行支付,生成内部单号Y,支付完成后,交易系统内部需要对上下游系统中的交易记录进行核对,保证买家的财产安全。
如下表所示:
表4
表4位上下游系统交易明细表(以左表为基础),如表4所示,对两个系统的主键进行去重,主键为单号,以左表为基础,左表中剩余的主键为4和6,4和6在右表中不存在。
右表缺失率=左表剩余主键条数/左表主键总条数=2/4=50%。假设第三预设阈值不大于40%,右表缺失率50%>40%,确定右表(系统B)存在数据异常。
再紧接着计算左表的缺失率,判断左表缺失率是否处处第三预设阈值。判断左表(系统A)的状态。
实施例1-4,根据配置信息选择脚本进行数据核对,在具体运行脚本时,对系统中的配置信息进行去重,能减少核对的劳动量,加快核对速度,提高核对效率。
基于同样的思路,本说明书实施例还提供了上述方法对应的装置。
图5为本说明书实施例提供的对应于图1的一种数据核对脚本生成装置的结构示意图;
如图5所示,该装置可以包括:
配置信息获取模块501,用于获取配置表中的配置信息;
数据核对脚本模板确定模块502,用于根据所述配置信息确定至少一个数据核对脚本模板;
可配置变量确定模块503,用于从所述数据核对脚本模板中确定与所述配置信息对应的可配置变量;
替换模块504,用于根据所述配置信息,将所述可配置变量替换为所述配置信息中的具体核对字段,得到数据核对脚本。
所述数据核对脚本模板确定模块502,具体可以包括:
待核对类型确定单元,用于确定所述配置信息对应的待核对类型;所述待核对类型包括可加变量、指定字段以及关联度;
数据核对脚本模板确定单元,用于根据所述待核对类型确定至少一个数据核对脚本模板。
所述待核对类型确定单元,具体可以用于:
确定所述配置信息在配置表中对应的行标签;
根据所述行标签确定待核对类型。
所述数据核对脚本模板确定模块,具体可以用于:
当所述待核对类型为可加变量时,确定所述数据核对脚本模板为可加变量数据核对脚本模板;所述可加变量包括业务系统中的交易金额、交易笔数中的至少一个。
所述数据核对脚本模板确定模块502,具体可以用于:
当所述待核对类型为指定字段时,确定所述数据核对脚本模板为指定字段数据核对脚本模板;所述指定字段包括所述业务系统中的用户ID、交易日期、商品类型等中的至少一个。
所述数据核对脚本模板确定模块502,具体用于:
当所述待核对类型为关联度时,确定所述数据核对脚本模板为关联度数据核对脚本模板。
所述装置,还可以包括:
数据核对脚本运行模块,用于运行所述数据核对脚本,得到核对结果。
所述装置,还可以用于:
根据所述配置表中的主键、其余字段以及可加变量的维度对第一待核对业务系统对应的左表以及第二待核对业务系统对应的右表中的数据进行去重,确定存在差异的可加变量;
对所述左表中的可加变量进行累加,得到第一变量累加值;
对所述右表中的可加变量进行累加,得到第二变量累加值;
比较所述第一变量累加值与所述第二变量累加值,得到差异值;所述差异值为所述第一变量累加值与所述第二变量累加值的差值;
判断所述差异值是否超出第一预设阈值,得到判断结果;所述第一预设阈值包含在所述配置信息中;
当所述判断结果表示所述差异值超出所述第一预设阈值时,确定所述第一待核对业务系统与所述第二待核对业务系统中至少有一个业务系统出现数据异常。
所述装置,还可以用于:
根据所述配置表中的主键、其余字段以及可加变量的维度对第一待核对业务系统对应的左表以及第二待核对业务系统对应的右表中的数据进行去重,确定存在差异的指定字段;
将所述左表和右表相比,确定存在差异的指定字段的数量;
判断所述指定字段的数量是否超出第二预设阈值,得到判断结果;所述第二预设阈值包含在所述配置信息中;
当所述判断结果表示所述差异值超出所述第二预设阈值时,确定所述两个待核对业务系统中至少有一个业务系统出现数据异常。
所述装置,还可以用于:
根据所述配置表中的主键对第一待核对业务系统对应的左表以及第二待核对业务系统对应的右表中的数据进行去重,分别确定所述左表和右表中剩余的主键条数;所述左表中剩余的主键在右表中不存在,所述右表中剩余的主键在左表中不存在;
计算所述左表中剩余的主键条数在左表主键总条数中所占的比例,得到右表的缺失率;
计算所述右表中剩余的主键条数在右表主键总条数中所占的比例,得到左表的缺失率;
当所述左表的缺失率超出所述第三预设阈值时,确定所述左表对应的第一待核对系统出现数据异常;所述第三预设阈值包含在所述配置信息中;
当所述右表的缺失率超出所述第三预设阈值时,确定所述右表对应的第二待核对系统出现数据异常。
基于同样的思路,本说明书实施例还提供了上述方法对应的设备。
图6为本说明书实施例提供的对应于图1的一种数据核对脚本生成设备的结构示意图。
如图6所示,设备600可以包括:
至少一个处理器610;以及,
与所述至少一个处理器通信连接的存储器630;其中,
所述存储器630存储有可被所述至少一个处理器610执行的指令620,所述指令被所述至少一个处理器610执行,以使所述至少一个处理器610能够:
获取配置表中的配置信息;
根据所述配置信息确定至少一个数据核对脚本模板;
从所述数据核对脚本模板中确定与所述配置信息对应的可配置变量;
根据所述配置信息,将所述可配置变量替换为所述配置信息中的具体核对字段,得到数据核对脚本。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。