具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
本申请一实施例提供了一种日志数据的校验方法及装置,可以根据用户的实际校验需求自动匹配校验规则,从而达到校验规则可自由配置的效果,再利用该校验规则实现日志数据的自动校验,提高了日志校验方式的灵活性、可变性,无需修改业务系统的应用程序,即可实现结合不同的校验需求采用相应的校验规则对日志数据进行校验。
图1为本申请一实施例提供的日志数据的校验方法的第一种流程示意图,实现图1中的校验方法的日志校验程序可以与业务系统程序设置于同一硬件设备中,也可以与业务系统程序设置于不同的硬件设备中,如图1所示,该方法至少包括以下步骤:
步骤S101,获取待校验日志数据;其中,该待校验日志数据可以是业务系统输出的日志数据,也可以是与业务系统对接的分布式数据处理服务器输出的日志数据,日志数据可以来自于服务端日志、客户端日志、Web端日志,日志数据为用户使用某种互联网产品时针对用户的操作动作所产生的数据,例如,针对用户的文件下载操作所产生的下载日志,针对用户的网页浏览操作所产生的浏览日志,针对用户的网上转账交易操作所产生的交易日志等等。
步骤S102,获取用于表征日志校验需求的配置文件,并确定与该配置文件对应的校验规则。
步骤S103,利用确定出的上述校验规则对上述待校验日志数据进行校验,并生成该待校验日志数据的校验结果。其中,该校验结果可以包含存在错误信息的日志文件的标识、重复的日志文件的标识、缺失的日志文件的标识、日志错误率、日志正确率、日志重复率、日志缺失率等信息中的一种或多种。
其中,上述校验方法的执行主体可以是服务器,还可以是客户端,在服务器或者客户端中设置有独立于业务系统程序的日志校验程序,该运行日志校验程序时执行上述步骤S101至S103。
在本申请提供的实施例中,日志校验程序独立于业务系统程序,且日志校验程序具体执行时是根据配置文件的变化而变化的,日志校验程序与业务系统程序之间是松耦合的,相互独立,互不影响,因此,能够结合用户的实际校验需求自动匹配校验规则,从而达到校验规则可自由配置的效果,再利用该校验规则实现日志数据的自动校验,提高了日志校验方式的灵活性、可变性,无需修改业务系统的应用程序,即可实现结合不同的校验需求采用相应的校验规则对日志数据进行校验。
需要说明的是,步骤S101与S102的执行没有严格的先后顺序。可是,针对上述配置文件中包含需要校验的日志数据的标识信息的情况,此时,先执行步骤S102,再执行步骤S101,最后执行步骤S103,具体的,首先,获取用于表征日志校验需求的配置文件,并确定与该配置文件对应的校验规则;然后,根据配置文件中的标识信息,获取与该标识信息对应的待校验日志数据(即在接收到的大量日志数据中查找出与标识信息匹配的日志数据作为待校验日志数据);最后,利用确定出的上述校验规则对上述待校验日志数据进行校验,并生成该待校验日志数据的校验结果。另外,针对待校验日志数据中包含多个日志文件的情况,按照配置文件中指定的日志校验顺序或日志校验系统自动确定的日志校验顺序,利用确定出的校验规则逐一对各日志文件进行校验,并生成相应的校验结果。这样用户即能够有选择性的对日志数据进行校验,提高了日志校验系统的易用性,还能自定义日志校验顺序,进一步提高了日志校验的灵活性。
其中,上述步骤S102中获取用于表征日志校验需求的配置文件,可以包括如下三种方式:
方式一:接收用户终端发送的配置文件,采用该方式生成配置文件,对于会写配置文件的专业用户,能够更好地满足用户的自动定义校验需求,从而达到自由配置校验规则的效果,提高了日志校验的灵活性、多样性,满足用户的不同校验需求。
方式二:根据用户终端发送的校验配置信息,生成与该校验配置信息对应的配置文件,采用该方式生成配置文件,对于不会写配置文件的非专业用户,但又存在特殊的校验需求的情况下,只需用户结合自身的日志校验需求进行选项操作,即可自动生成相应的位置文件。
方式三:根据上述待校验日志数据的日志类型,生成与该日志类型对应的配置文件,采用该方式生成配置文件,对于不会写配置文件且不存在特殊的校验需求的非专业用户,系统根据预设的日志类型与校验需求之间的对应关系(该对应关系可以是系统根据以往用户选用的配置文件确定的),自动生成与该校验日志数据的日志类型对应的配置文件,一方面,无需用户自己形成配置文件并上传;另一方面,也不需要用户输入校验配置信息,也能够自动完成日志数据的校验工作,进一步扩展了校验方法的实际应用场景。
需要说明的是,在具体实施时,可以根据用户的具体情况与实际需求进行选择。
其中,上述配置文件中的日志校验需求的语言格式符合JSON数据格式。
在本申请实施例中,采用标准的JSON协议作为配置文件的格式,JSON数据格式就是若干个键/值(key,value)对的集合,若干个键/值的具体内容可以根据用户的实际校验需求进行自由配置,可以写入各式各样的日志校验需求,保证了日志校验需求配置的灵活性。
具体的,如图2所示,上述步骤S102获取用于表征日志校验需求的配置文件,并确定与该配置文件对应的校验规则,具体包括:
步骤1021,获取用于表征日志校验需求的配置文件,对该配置文件进行解析,得到相应的日志校验需求;
步骤1022,根据上述日志校验需求,在校验插件库中选取与该日志校验需求对应的至少一个校验插件,该校验插件用于实现至少一项校验功能;
相应的,上述步骤S103利用确定出的上述校验规则对上述待校验日志数据进行校验,并生成该待校验日志数据的校验结果,具体包括:
步骤1031,利用选取出的至少一个校验插件对上述待校验日志数据进行校验;
步骤1032,生成上述待校验日志数据的校验结果。
其中,由于插件具有易修改、可维护性强的特点,且各个插件之间相互独立,均与日志校验主程序之间通过接口联系,可以被随时删除、插入和修改,结构灵活,容易修改,方便软件的升级和维护,因此,在具体实施时,可以采用插件式架构来实现针对不同的日志校验需求匹配相应的校验规则,预先创建校验插件库,在该校验插件库中存储有多个具有特定校验功能的校验插件,在对待校验日志数据进行校验的过程中,调取与日志校验需求匹配的至少一个校验插件,进而利用该至少一个校验插件实现对待校验日志数据的自动校验。
进一步的,为了在校验插件的数量有限的情况下,更好地满足用户多样化的日志校验需求,基于此,上述校验插件库中的每个校验插件用于实现一项校验功能,两两校验插件的校验功能完全不同;
上述步骤1031利用选取出的至少一个校验插件对上述待校验日志数据进行校验,具体包括:
利用选取出的多个校验插件组合成的校验插件集对上述待校验日志数据进行校验。
在具体实施时,校验插件库中每个校验插件可以只具有一项校验功能的插件,即校验插件库中包含多个具有单一校验功能的校验插件,例如,存在性校验插件、类型校验插件、值域校验插件、内容长度校验插件、逻辑关系校验插件等等,该逻辑关系校验插件包括因果关系校验插件、时序关系校验插件、或依赖关系校验插件等,且每个校验插件所具有的校验功能都是不同的。
在本申请提供的实施例中,通过以最小校验功能为单元将校验插件原子化,具有支持多个原子性的校验算子的特点,根据用户的日志校验需求可自由地、灵活地对校验算子进行组合,得到所需的校验规则,这样即使校验插件库中包含的校验插件数量是有限的,但是通过将这些有限的具有单一校验功能的校验插件的任意组合,能够得到满足各种日志校验需求的无限多的校验插件集,从而实现在校验插件的数量有限的情况下,也能够更好地满足用户多样化的日志校验需求,大大降低了校验插件的维护成本。
进一步的,考虑到随着产品的不断升级,导致用户随时可能产生新的校验需求,为了提高用户体验度,基于此,如图3所示,上述校验方法还包括:
步骤S104,接收用户终端发送的校验插件库更新请求,该更新请求携带有待修改的校验插件标识及修改内容,或者该更新请求携带有待增加的校验插件标识及程序代码,或者该更新请求携带有待删除的校验插件标识;
步骤S105,根据上述更新请求对校验插件库进行更新,得到更新后的校验插件库。
在具体实施时,可以通过设置预定的接口来接收用户终端的校验插件库更新请求,用户通过该接口传输携带有待修改的校验插件标识及修改内容,或者待增加的校验插件标识及程序代码,或者待删除的校验插件标识的更新请求,使得校验功能的增加、删除或修改,只需相应的增加、删除或修改校验插件即可,并且在对校验插件库更新维护过程中,不会影响整个日志校验程序架构,从而能够快速地实现校验功能的调整,扩充校验功能,进而保证更好地满足用户多样化的日志校验需求。
其中,上述校验插件库可以由系统开发人员或者具有设置权限的第三方用户共同来维护,具体的,可以为第三方用户设置一个开放的接口,进一步满足用户多样化、个性化的日志校验需求,提升用户体验度。
另外,为了实现校验插件的更新管理达到可控的目的,而不是任何用户都可以随意删除或修改校验插件库中的任意校验插件,因此,可以为第三方用户设定各自的更新权限,例如,第三方用户只具有更新自身上传的校验插件的权限,而无法对系统开发人员上传的校验插件进行修改、删除操作。为了达到校验插件的更新管理具有可控性的目的,在本申请实施例中,如图4所示,上述步骤S104接收用户终端发送的校验插件库更新请求之后,还包括:
步骤S111,根据用户终端的标识判断该用户终端是否为第三方用户;若否(说明该用户终端为系统开发人员使用的用户终端),则直接执行步骤S105根据上述更新请求,对校验插件库进行更新,得到更新后的校验插件库;若是,则执行步骤S112根据校验插件库更新请求,确定该用户终端是否具有与更新请求对应的校验插件的更新权限;
若具有,则执行步骤S105根据上述更新请求,对校验插件库进行更新,得到更新后的校验插件库;
若不具有,则不执行更新操作,并执行步骤S113生成用于表征当前用户无更新权限的提示信息。
进一步的,考虑到目前的日志类型多种多样,针对待校验日志数据中包含多种日志类型的日志文件的情况,本申请实施例还可以针对不同日志类型的日志文件配置各自校验规则,基于此,上述步骤S101获取待校验日志数据之后,还包括:
根据待校验日志数据中各日志文件的日志类型,将多个日志文件划分为多个类别,每个类别中包括至少一种日志类型的日志文件,即在每个类别中可以只包含一种日志类型的日志文件,也可以包含两种以上日志类型的日志文件;
上述根据待校验日志数据的日志类型,生成与该日志类型对应的配置文件,具体包括:
针对每个类别,确定与该类别对应的校验项,并根据该校验项生成与该类别所对应的配置文件;
上述步骤S103利用确定出的上述校验规则对上述待校验日志数据进行校验,具体包括:
分别针对每个类别,利用确定出的与该类别对应的校验规则逐一对该类别中的至少一个日志文件进行校验,直到将该类别中所有日志文件校验完成。
举例说明,本申请实施例中预设的日志类型、日志类别与校验项的对应关系,具体可以为下表1所示。
表1
日志类型 |
日志类别 |
校验项 |
交易日志、存款日志、借款日志 |
高敏感度日志 |
C |
登录日志、账号修改日志、密码修改日志 |
中敏感度日志 |
B |
点击日志、浏览日志、评价日志 |
低敏感度日志 |
A |
其中,针对待校验日志数据的日志类型为点击日志、浏览日志、评价日志中任一种的情况,将该日志文件划分到属于低敏感度日志的类别中,对应的校验项A包括:存在性验证和值域校验;
针对待校验日志数据的日志类型为登录日志、账号修改日志、密码修改日志中任一种的情况,将该日志文件划分到属于中敏感度日志的类别中,对应的校验项B包括:存在性验证、值域校验和内容长度校验;
针对待校验日志数据的日志类型为交易日志、存款日志、借款日志中任一种的情况,将该日志文件划分到属于高敏感度日志的类别中,对应的校验项C包括:存在性验证、值域校验、内容长度校验和逻辑关系校验。
在本申请实施例中,先基于各日志文件的日志类型,对多个日志文件进行分类处理,将使用相同校验项的日志文件划分到一个类别中;并且生成各类别对应的配置文件,根据各自的配置文件确定相应的校验规则;最后,按照类别进行校验,即一个类别中的所有日志文件均校验完成后,再校验下一个类别中的日志文件,这样无需频繁更换校验规则,提高了日志数据的校验效率。
进一步的,考虑到可能存在某些类别中包含的日志文件的数量比较少的情况,针对该情况,为了进一步提高日志校验效率,可以不为该类别中日志文件使用单独的校验规则,而是选用校验更严格的校验规则对该类别的日志文件进行校验,达到优化合并处理的目的,这样无需频繁更换校验插件,基于此,每个类别对应于一个校验级别,具体可以为下表2所示;
上述根据待校验日志数据中各日志文件的日志类型,将多个日志文件划分为多个类别之后,还包括:
判断各类别中的日志文件的数量是否小于预设数量阈值,例如,分别判断划分到属于低敏感度日志、中敏感度日志、高敏感度日志这三个类别中的日志文件的数量是否小于预设数量阈值;
若是,则将该类别中的至少一个日志文件,与高于该类别对应的校验级别的日志文件合并为一个类别,例如,划分到属于低敏感度日志的类别中的日志文件的数量小于预设数量阈值,此时,可以将属于低敏感度日志的类别中的日志文件与属于中敏感度日志的类别中的日志文件合并为一个类别,即采用与属于中敏感度日志的类别对应的校验规则对属于低敏感度日志的类别中的日志文件进行校验。
表2
日志类型 |
日志类别 |
校验级别 |
交易日志、存款日志、借款日志 |
高敏感度日志 |
第三级别 |
登录日志、账号修改日志、密码修改日志 |
中敏感度日志 |
第二级别 |
点击日志、浏览日志、评价日志 |
低敏感度日志 |
第一级别 |
其中,每个日志类别对应的校验项与表1中相同,在此不再赘述。
进一步的,由于用于对日志数据进行校验的日志校验程序可以与业务系统程序设置于同一硬件设备中,也可以与业务系统程序设置于不同的硬件设备中,考虑到针对日志校验程序与业务系统程序设置于同一硬件设备中的情况,此时可能由于运行日志校验程序时需要占用一定负载,存在资源争用的问题,进而可能影响到业务系统程序的正常运行,因此,在部署有业务系统程序的硬件设备的闲置负载比较小的情况下,可以将日志校验程序部署在独立的硬件设备中,此时两个硬件设备之间需要进行待校验日志数据的传输,可能存在数据泄露、数据传输流畅性差和数据丢失的问题,基于此,上述步骤S101获取待校验日志数据之前,还包括:
对业务系统或者分布式数据处理系统传输的日志数据执行如下至少一种操作,并将执行如下至少一种操作后的日志数据作为待校验日志数据:
对接收到的已加密的日志数据进行解密处理;或者,
对接收到的已压缩的日志数据进行解压缩处理;或者,
对解密处理和/或解压缩处理后的日志数据进行完整性验证。
具体的,在业务系统(客户端)或者分布式数据处理系统将待校验日志数据传输至日志校验系统(服务器端)的过程中,由于可能存在数据泄露、数据传输流畅性差和数据丢失的问题,需要采用如下实现方式来解决该问题,具体为:
(1)为了防止日志被非法截获,而出现日志数据的外泄的情况,提高日志数据的传输安全性,先在业务系统(客户端)或者分布式数据处理系统对待校验日志数据进行加密处理,将加密处理后的待校验日志数据传输至日志校验系统(服务器端),对应的,日志校验系统(服务器端)接收到该加密处理后的日志数据之后,需要对该已加密的日志数据进行解密处理,其中,可以采用非对称加密算法对日志数据进行解加密处理。
(2)为了节约客户端传输数据所需的移动流量,以及提高数据在网络中的传输成功率,先在业务系统(客户端)或者分布式数据处理系统对待校验日志数据进行压缩处理,将压缩处理后的待校验日志数据传输至日志校验系统(服务器端),对应的,日志校验系统(服务器端)接收到该压缩处理后的日志数据之后,需要对该已压缩的日志数据进行解压缩处理,其中,可以采用GZIP算法对日志数据进行解压缩处理。
(3)为了保证日志数据在网络传输的过程中不重、不丢,提高日志数据传输的完整性、一致性,日志校验系统(服务器端)接收到业务系统(客户端)或者分布式数据处理系统发送的数据传输完毕指令,以及对接收到的日志数据解密处理和/或解压缩处理之后,根据接收到的各日志文件的随机字符串token和日志编号sequence_id,确定数据传输完毕指令所指示的已传输的日志文件是否一致,如果存在日志文件缺失的情况,则向业务系统(客户端)或者分布式数据处理系统发送日志文件重新发送请求,如果存在日志文件重复的情况,则删除重复的日志文件。
具体的,上述步骤S103利用确定出的上述校验规则对上述待校验日志数据进行校验,包括:利用确定出的上述校验规则对上述待校验日志数据包含的各待校验日志文件执行如下至少一种校验操作:
确定待校验日志文件中是否存在预设属性数据;或者,
确定待校验日志文件的日志类型是否正确;或者,
确定待校验日志文件中属性数据的长度是否符合预设长度要求;或者,
确定待校验日志文件中属性数据的值域是否符合预设值域要求;或者,
确定与待校验日志文件具有特定逻辑关系的关联日志文件是否存在。
其中,对待校验日志数据执行哪些项校验操作,由配置文件中写入的日志校验需求来决定。
其中,由于在产品日志文件生成过程中,针对用户对互联网产品的某一次使用操作,将为本次使用操作生成一个随机字符串,即token,与本次使用操作相关的日志文件的标识中均包含该随机字符串,即对于具有相同的随机字符串的一组日志文件为同一次对产品的使用操作生成的;并且还将为本次使用操作生成的各日志文件生成各自的日志编号,即sequence_id,因此,上述确定与待校验日志文件具有特定逻辑关系的关联日志文件是否存在,具体包括:
查找与待校验日志文件具有相同随机字符串的多个关联日志文件;
根据待校验日志文件的日志编号,确定与该待校验日志文件满足特定逻辑关系的关联日志文件是否存在,其中,该逻辑关系可以是因果关系、时序关系、依赖关系等,具体验证与待校验日志具有哪种逻辑关系的关联日志文件是否存在,由配置文件中指定的逻辑关系验证类型来决定,即由用户的实际日志校验需求来决定。
在本申请实施例中,以校验时序关系为例,上述根据待校验日志文件的日志编号,确定与该待校验日志文件满足特定逻辑关系的关联日志文件是否存在,具体为:
根据待校验日志文件的日志编号,确定该待校验日志文件的在先日志文件是否存在(即在某次产品使用操作中生成待校验日志文件之前产生的关联日志文件是否存在);或者,
根据待校验日志文件的日志编号,确定该待校验日志文件的在后日志文件是否存在(即在某次产品使用操作中生成待校验日志文件之后产生的关联日志文件是否存在)。
举例说明,在配置文件中指定“A日志之后,将发生B日志”时,那么如果当前待校验日志文件为A日志,则需要确定在A日志生成之后是否产生一个与A日志具有相同随机字符串的B日志,如果不存在,则认为这组日志校验不通过。
进一步的,为了便于第三方用户、研发人员得到各自所需的日志数据校验结果,以及实现对校验结果的可追溯性,基于此,上述生成待校验日志数据的校验结果之后,还包括:对上述校验结果执行如下至少一种操作:
将待校验日志数据的校验结果发送至对应的用户终端;或者,
将待校验日志数据的校验结果发送至对应的研发系统;或者,
将待校验日志数据的校验结果存入预设数据库中,这样有利于相关人员后续能够随时获取已校验日志数据的校验结果,实现了对校验结果的可追溯性。
图5为本申请实施例提供的日志数据的校验过程一种实现原理示意图,如图5所示,将规则引擎作为日志校验系统的主体程序,且校验功能载体采用插件模式,每一个具有特定校验功能的校验插件均独立存在,可随用随调,动态可插拔。具体的,规则引擎的输入为日志数据和配置文件,规则引擎接收到日志数据和配置文件之后,可以先对配置文件进行解析,得到相应的日志校验需求;再在校验插件库中选取与该日志校验需求对应的至少一个校验插件;最后,利用选取出的至少一个校验插件对待校验日志数据进行校验,并生成待校验日志数据的校验结果,规则引擎的输出为待校验日志数据的校验结果。
其中,如果解析出的日志校验需求中包含需要校验的日志标识信息,则利用选取出的至少一个校验插件对待校验日志数据进行校验之前,还包括:查找出与标识信息匹配的日志数据作为待校验日志数据。
另外,系统开发人员和第三方用户能够通过预设接口对校验插件库中的校验插件进行更新维护,更新过程中无需改动日志校验系统的主体程序,直接通过该预设接口新增校验插件、删除校验插件、修改校验插件即可,进一步满足用户多样化、个性化的日志校验需求,提升用户体验度。
图6为本申请实施例提供的日志数据的校验过程另一种实现原理示意图,如图6所示,图5中的规则引擎可以采用分布式编程架构,可以是基于ODPS(Open Data ProcessingService,开发数据处理服务)的一套分布式编程框架,可以使用Python编程语言灵活操作输入的日志数据,即通过分布式服务器集群来进行日志数据的自动校验,在日志数据处理量比较大的情况下,可以采用该系统架构,由多台服务器并行对日志数据进行自动校验,这样能够提高日志数据的校验效率,实现全量日志快速校验。
接下来,本申请实施例中给出一个具体实例,以下载日志的校验过程为例:
(1)获取待校验日志数据,该待校验日志数据为一个下载日志,具体为:
{
"log_type":"download_start"
"uid":"abcdef123456",
"age":201,
"download_app":"",
"token":"abcabcabcabc",
"sequence_id":1
}
(2)获取用于表征日志校验需求的配置文件,该配置文件的具体代码为:
{
"input_project":"tip_dev",//日志表所在project名称
"input_table":"test_client_log",//日志表名称
"output_project":"tip_dev",//结果表所在project名称
"output_table":"test_client_log_check_result",//结果表名称
"rule_type":"content_check",
"seed":"download_start",//日志名称
//检测有无这些属性以及属性值是否为空.对于第一级节点,field_name写ROW即可.
(3)对上述配置文件进行解析,得到相应的日志校验需求,该日志校验需求为对日志类型为下载日志的日志文件执行3方面校验:一是,确定日志文件中是否存在性别(sex)属性(即存在性验证);二是,确定日志文件中的年龄(age)属性是否在0-150之间(即值域校验);三是,确定日志文件中用户ID的长度是否是32位(内容长度校验)。
(4)根据上述日志校验需求,在校验插件库中选取与该日志校验需求对应的至少一个校验插件,即在校验插件库中选取存在性校验插件、值域校验插件、内容长度校验插件。
本申请一实施例中的日志数据的校验方法,获取待校验日志数据;以及获取用于表征日志校验需求的配置文件,并确定与该配置文件对应的校验规则;利用确定出的校验规则对待校验日志数据进行校验,并生成该待校验日志数据的校验结果。相比于相关技术中人工日志校验方式或校验规则固定不变的校验方式,本申请实施例提供的日志数据的校验方法,可以根据用户的实际校验需求自动匹配校验规则,从而达到校验规则可自由配置的效果,再利用该校验规则实现日志数据的自动校验,提高了日志校验方式的灵活性、可变性,无需修改业务系统的应用程序,即可实现结合不同的校验需求采用相应的校验规则对日志数据进行校验。
本申请另一实施例提供了一种日志数据的校验方法,能够实现在校验插件的数量有限的情况下,也能够更好地满足用户多样化的日志校验需求,大大降低了校验插件的维护成本。
图7为本申请另一实施例提供的日志数据的校验方法的第一种流程示意图,如图7所示,该方法至少包括以下步骤:
步骤S701,获取待校验日志数据;
步骤S702,获取用于表征日志校验需求的配置文件;
步骤S703,根据上述配置文件,在校验插件库中选取与该配置文件对应的至少一个校验插件,每个校验插件用于实现一项校验功能,两两校验插件的校验功能完全不同;
步骤S704,利用上述至少一个校验插件组合成的校验插件集对上述待校验日志数据进行校验;
步骤S705,生成上述待校验日志数据的校验结果。
在本申请实施例中,通过以最小校验功能为单元将校验插件原子化,具有支持多个原子性的校验算子的特点,根据用户的日志校验需求可自由地、灵活地对校验算子进行组合,得到所需的校验规则,这样即使校验插件库中包含的校验插件数量是有限的,但是通过将这些有限的具有单一校验功能的校验插件的任意组合,能够得到满足各种日志校验需求的无限多的校验插件集,从而实现在校验插件的数量有限的情况下,也能够更好地满足用户多样化的日志校验需求,大大降低了校验插件的维护成本。
进一步的,用户还可以针对不同日志类型的日志文件配置各自的日志校验需求,即可以在配置文件中写入分类校验信息,或者通过用户终端发送包含分类校验信息的校验配置信息,因此,如图8所示,上述步骤S702获取用于表征日志校验需求的配置文件之后,还包括:
步骤S706,根据配置文件中的分类校验信息和待校验日志数据中各日志文件的日志类型,将多个日志文件划分为多个类别,每个类别中包括至少一种日志类型的日志文件;
相应的,上述步骤S703根据上述配置文件,在校验插件库中选取与该配置文件对应的至少一个校验插件,具体包括:
步骤S7031,针对每个类别,确定与该类别对应的校验项,并根据该校验项在校验插件库中选取与该类别所对应的至少一个校验插件;
相应的,上述步骤S704利用上述至少一个校验插件组合成的校验插件集对上述待校验日志数据进行校验,具体包括:
步骤S7041,分别针对每个类别,利用选取出的与该类别对应的至少一个校验插件组合成的校验插件集,逐一对该类别中的至少一个日志文件进行校验,直到将该类别中所有日志文件校验完成,对下一个类别中的各日志文件执行校验操作。
仍以表1中的日志类型、日志类别与校验项的对应关系为例,将该对应关系作为配置文件中的分类校验信息,具体为:
针对待校验日志数据的日志类型为点击日志、浏览日志、评价日志中任一种的情况,将该日志文件划分到属于低敏感度日志的类别中,对应的校验项A包括:存在性验证和值域校验;
针对待校验日志数据的日志类型为登录日志、账号修改日志、密码修改日志中任一种的情况,将该日志文件划分到属于中敏感度日志的类别中,对应的校验项B包括:存在性验证、值域校验和内容长度校验;
针对待校验日志数据的日志类型为交易日志、存款日志、借款日志中任一种的情况,将该日志文件划分到属于高敏感度日志的类别中,对应的校验项C包括:存在性验证、值域校验、内容长度校验和逻辑关系校验。
进一步的,同样考虑到可能存在某些类别中包含的日志文件的数量比较少的情况,针对该情况,为了提高日志校验效率,可以不为该类别中日志文件使用单独的校验规则,而是选用校验更严格的校验规则对该类别的日志文件进行校验,达到优化合并处理的目的,这样无需频繁更换校验插件,基于此,每个类别对应于一个校验级别,仍以表2中的对应关系为例;如图9所示,上述步骤S706根据配置文件中的分类校验信息和待校验日志数据中各日志文件的日志类型,将多个日志文件划分为多个类别之后,还包括:
步骤S707,判断各类别中的日志文件的数量是否小于预设数量阈值,例如,分别判断划分到属于低敏感度日志、中敏感度日志、高敏感度日志这三个类别中的日志文件的数量是否小于预设数量阈值;
若是,则执行步骤S708将该类别中的至少一个日志文件,与高于该类别对应的校验级别的日志文件合并为一个类别,例如,划分到属于低敏感度日志的类别中的日志文件的数量小于预设数量阈值,此时,可以将属于低敏感度日志的类别中的日志文件与属于中敏感度日志的类别中的日志文件合并为一个类别,即采用与属于中敏感度日志的类别对应的校验规则对属于低敏感度日志的类别中的日志文件进行校验。
若否,则执行步骤S7031针对每个类别,确定与该类别对应的校验项,并根据该校验项在校验插件库中选取与该类别所对应的至少一个校验插件。
需要说明的是,本申请另一实施例与本申请一实施例基于同一发明构思,因此该实施例的具体实施可以参见前述方法的实施,重复之处不再赘述。
对应上述图2至图6描述的日志数据的校验方法,基于相同的技术构思,本申请实施例还提供了一种日志数据的校验装置,如图10所示,包括:日志数据获取模块1001、校验规则确定模块1002、日志数据校验模块1003。
在一个具体的实施例中,日志数据获取模块1001,用于获取待校验日志数据;
校验规则确定模块1002,用于获取用于表征日志校验需求的配置文件,并确定与该配置文件对应的校验规则;
日志数据校验模块1003,用于利用确定出的上述校验规则对上述待校验日志数据进行校验,并生成该待校验日志数据的校验结果。
可选地,针对配置文件生成过程,上述校验规则确定模块1002,具体用于:
接收用户终端发送的配置文件;或者,
根据用户终端发送的校验配置信息,生成与所述校验配置信息对应的配置文件;或者,
根据所述待校验日志数据的日志类型,生成与所述日志类型对应的配置文件。
可选地,所述配置文件中的日志校验需求的语言格式符合JSON数据格式。
可选地,针对校验规则确定过程,上述校验规则确定模块1002,具体用于:
对所述配置文件进行解析,得到相应的日志校验需求;
根据所述日志校验需求,在校验插件库中选取与所述日志校验需求对应的至少一个校验插件,所述校验插件用于实现至少一项校验功能;
相应的,上述日志数据校验模块1003,具体用于:
利用选取出的所述至少一个校验插件对所述待校验日志数据进行校验。
可选地,所述校验插件库中的每个校验插件用于实现一项校验功能,两两所述校验插件的校验功能完全不同;
上述日志数据校验模块1003,具体用于:
利用选取出的多个所述校验插件组合成的校验插件集对所述待校验日志数据进行校验。
可选地,如图11所示,上述校验装置还包括:
更新请求接收模块1004,用于接收用户终端发送的校验插件库更新请求,所述更新请求携带有待修改的校验插件标识及修改内容,或者所述更新请求携带有待增加的校验插件标识及程序代码,或者所述更新请求携带有待删除的校验插件标识;
插件库更新模块1005,用于根据所述更新请求对所述校验插件库进行更新,得到更新后的校验插件库。
可选的,所述待校验日志数据包括多种日志类型的日志文件;
上述校验装置还包括:日志数据分类模块1006,用于在获取待校验日志数据之后,根据所述待校验日志数据中各日志文件的日志类型,将多个所述日志文件划分为多个类别,每个类别中包括至少一种日志类型的日志文件;
相应的,针对配置文件生成过程,上述校验规则确定模块1002,具体用于:针对每个类别,确定与该类别对应的校验项,并根据该校验项生成与该类别所对应的配置文件;
相应的,上述日志数据校验模块1003,具体用于:分别针对每个类别,利用确定出的与该类别对应的校验规则逐一对该类别中的所述至少一个日志文件进行校验,直到将该类别中所有日志文件校验完成。
可选地,每个所述类别对应于一个校验级别;上述校验装置还包括:类别重新划分模块1007,用于在根据所述待校验日志数据中各日志文件的日志类型,将多个所述日志文件划分为多个类别之后,判断各所述类别中的日志文件的数量是否小于预设数量阈值;若是,则将该类别中的至少一个日志文件,与高于该类别对应的校验级别的日志文件合并为一个类别。
可选地,上述校验装置还包括:数据预处理模块1008,用于在获取待校验日志数据之前,对业务系统或者分布式数据处理系统传输的日志数据执行如下至少一种操作,并将执行如下至少一种操作后的日志数据作为待校验日志数据:
对接收到的已加密的日志数据进行解密处理;或者,
对接收到的已压缩的日志数据进行解压缩处理;或者,
对解密处理和/或解压缩处理后的日志数据进行完整性验证。
可选地,上述日志数据校验模块1003,具体用于:利用确定出的所述校验规则对所述待校验日志数据包含的各待校验日志文件执行如下至少一种校验操作:
确定待校验日志文件中是否存在预设属性数据;或者,
确定待校验日志文件的日志类型是否正确;或者,
确定待校验日志文件中属性数据的长度是否符合预设长度要求;或者,
确定待校验日志文件中属性数据的值域是否符合预设值域要求;或者,
确定与待校验日志文件具有特定逻辑关系的关联日志文件是否存在。
可选地,上述校验装置还包括:校验结果处理模块1009,用于对所述校验结果执行如下至少一种操作:
将所述校验结果发送至对应的用户终端;或者,
将所述校验结果发送至对应的研发系统;或者,
将所述校验结果存入预设数据库中。
本申请实施例中的日志数据的校验装置,获取待校验日志数据;以及获取用于表征日志校验需求的配置文件,并确定与该配置文件对应的校验规则;利用确定出的校验规则对待校验日志数据进行校验,并生成该待校验日志数据的校验结果。相比于相关技术中人工日志校验方式或校验规则固定不变的校验方式,本申请实施例提供的日志数据的校验装置,可以根据用户的实际校验需求自动匹配校验规则,从而达到校验规则可自由配置的效果,再利用该校验规则实现日志数据的自动校验,提高了日志校验方式的灵活性、可变性,无需修改业务系统的应用程序,即可实现结合不同的校验需求采用相应的校验规则对日志数据进行校验。
在另一个具体的实施例中,上述日志数据获取模块1001,用于获取待校验日志数据;
上述校验规则确定模块1002,用于获取用于表征日志校验需求的配置文件,并根据该配置文件,在校验插件库中选取与该配置文件对应的至少一个校验插件,其中,每个校验插件用于实现一项校验功能,两两校验插件的校验功能完全不同;
上述日志数据校验模块1003,用于利用上述至少一个校验插件组合成的校验插件集对上述待校验日志数据进行校验,并生成该待校验日志数据的校验结果。
在本申请实施例中,通过以最小校验功能为单元将校验插件原子化,具有支持多个原子性的校验算子的特点,根据用户的日志校验需求可自由地、灵活地对校验算子进行组合,得到所需的校验规则,这样即使校验插件库中包含的校验插件数量是有限的,但是通过将这些有限的具有单一校验功能的校验插件的任意组合,能够得到满足各种日志校验需求的无限多的校验插件集,从而实现在校验插件的数量有限的情况下,也能够更好地满足用户多样化的日志校验需求,大大降低了校验插件的维护成本。
需要说明的是,需要说明的是,由于这些装置所解决问题的原理与前述图7至9所述的校验方法相似,因此该装置的实施可以参见前述方法的实施,重复之处不再赘述。
进一步地,对应上述图1至图6所示的方法,基于相同的技术构思,本申请实施例还提供了一种日志数据校验设备,该设备用于执行上述的日志数据的校验方法,如图12所示。
日志数据校验设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上的处理器1201和存储器1202,存储器1202中可以存储有一个或一个以上存储应用程序或数据。其中,存储器1202可以是短暂存储或持久存储。存储在存储器1202的应用程序可以包括一个或一个以上模块(图示未示出),每个模块可以包括对日志数据校验设备中的一系列计算机可执行指令。更进一步地,处理器1201可以设置为与存储器1202通信,在日志数据校验设备上执行存储器1202中的一系列计算机可执行指令。日志数据校验设备还可以包括一个或一个以上电源1203,一个或一个以上有线或无线网络接口1204,一个或一个以上输入输出接口1205,一个或一个以上键盘1206等。
在一个具体的实施例中,日志数据校验设备包括有存储器,以及一个或一个以上的程序,其中一个或者一个以上程序存储于存储器中,且一个或者一个以上程序可以包括一个或一个以上模块,且每个模块可以包括对日志数据校验设备中的一系列计算机可执行指令,且经配置以由一个或者一个以上处理器执行该一个或者一个以上程序包含用于进行以下计算机可执行指令:
获取待校验日志数据;
获取用于表征日志校验需求的配置文件,并确定与所述配置文件对应的校验规则;
利用确定出的所述校验规则对所述待校验日志数据进行校验,并生成所述待校验日志数据的校验结果。
可选地,计算机可执行指令在被执行时,所述获取用于表征日志校验需求的配置文件,包括:
接收用户终端发送的配置文件;或者,
根据用户终端发送的校验配置信息,生成与所述校验配置信息对应的配置文件;或者,
根据所述待校验日志数据的日志类型,生成与所述日志类型对应的配置文件。
可选地,计算机可执行指令在被执行时,所述配置文件中的日志校验需求的语言格式符合JSON数据格式。
可选地,计算机可执行指令在被执行时,所述确定与所述配置文件对应的校验规则,包括:
对所述配置文件进行解析,得到相应的日志校验需求;
根据所述日志校验需求,在校验插件库中选取与所述日志校验需求对应的至少一个校验插件,所述校验插件用于实现至少一项校验功能;
所述利用确定出的所述校验规则对所述待校验日志数据进行校验,包括:
利用选取出的所述至少一个校验插件对所述待校验日志数据进行校验。
可选地,计算机可执行指令在被执行时,所述校验插件库中的每个校验插件用于实现一项校验功能,两两所述校验插件的校验功能完全不同;
所述利用选取出的所述至少一个校验插件对所述待校验日志数据进行校验,包括:
利用选取出的多个所述校验插件组合成的校验插件集对所述待校验日志数据进行校验。
可选地,计算机可执行指令在被执行时,还包含用于进行以下计算机可执行指令:
接收用户终端发送的校验插件库更新请求,所述更新请求携带有待修改的校验插件标识及修改内容,或者所述更新请求携带有待增加的校验插件标识及程序代码,或者所述更新请求携带有待删除的校验插件标识;
根据所述更新请求对所述校验插件库进行更新,得到更新后的校验插件库。
可选地,计算机可执行指令在被执行时,所述待校验日志数据包括多种日志类型的日志文件;
所述获取待校验日志数据之后,还包括:根据所述待校验日志数据中各日志文件的日志类型,将多个所述日志文件划分为多个类别,每个类别中包括至少一种日志类型的日志文件;
所述根据所述待校验日志数据的日志类型,生成与所述日志类型对应的配置文件,包括:针对每个类别,确定与该类别对应的校验项,并根据该校验项生成与该类别所对应的配置文件;
所述利用确定出的所述校验规则对所述待校验日志数据进行校验,包括:分别针对每个类别,利用确定出的与该类别对应的校验规则逐一对该类别中的所述至少一个日志文件进行校验,直到将该类别中所有日志文件校验完成。
可选地,计算机可执行指令在被执行时,每个所述类别对应于一个校验级别;
所述根据所述待校验日志数据中各日志文件的日志类型,将多个所述日志文件划分为多个类别之后,还包括:
判断各所述类别中的日志文件的数量是否小于预设数量阈值;
若是,则将该类别中的至少一个日志文件,与高于该类别对应的校验级别的日志文件合并为一个类别。
可选地,计算机可执行指令在被执行时,所述获取待校验日志数据之前,还包括:
对业务系统或者分布式数据处理系统传输的日志数据执行如下至少一种操作,并将执行如下至少一种操作后的日志数据作为待校验日志数据:
对接收到的已加密的日志数据进行解密处理;或者,
对接收到的已压缩的日志数据进行解压缩处理;或者,
对解密处理和/或解压缩处理后的日志数据进行完整性验证。
可选地,计算机可执行指令在被执行时,所述利用确定出的所述校验规则对所述待校验日志数据进行校验,包括:利用确定出的所述校验规则对所述待校验日志数据包含的各待校验日志文件执行如下至少一种校验操作:
确定待校验日志文件中是否存在预设属性数据;或者,
确定待校验日志文件的日志类型是否正确;或者,
确定待校验日志文件中属性数据的长度是否符合预设长度要求;或者,
确定待校验日志文件中属性数据的值域是否符合预设值域要求;或者,
确定与待校验日志文件具有特定逻辑关系的关联日志文件是否存在。
可选地,计算机可执行指令在被执行时,还包含用于进行以下计算机可执行指令:对所述校验结果执行如下至少一种操作:
将所述校验结果发送至对应的用户终端;或者,
将所述校验结果发送至对应的研发系统;或者,
将所述校验结果存入预设数据库中。
本申请实施例中的日志数据校验设备,获取待校验日志数据;以及获取用于表征日志校验需求的配置文件,并确定与该配置文件对应的校验规则;利用确定出的校验规则对待校验日志数据进行校验,并生成该待校验日志数据的校验结果。相比于相关技术中人工日志校验方式或校验规则固定不变的校验方式,本申请实施例提供的日志数据校验设备,可以根据用户的实际校验需求自动匹配校验规则,从而达到校验规则可自由配置的效果,再利用该校验规则实现日志数据的自动校验,提高了日志校验方式的灵活性、可变性,无需修改业务系统的应用程序,即可实现结合不同的校验需求采用相应的校验规则对日志数据进行校验。
在另一个具体的实施例中,日志数据校验设备包括有存储器,以及一个或一个以上的程序,其中一个或者一个以上程序存储于存储器中,且一个或者一个以上程序可以包括一个或一个以上模块,且每个模块可以包括对日志数据校验设备中的一系列计算机可执行指令,且经配置以由一个或者一个以上处理器执行该一个或者一个以上程序包含用于进行以下计算机可执行指令:
获取待校验日志数据;
获取用于表征日志校验需求的配置文件,并根据所述配置文件,在校验插件库中选取与所述配置文件对应的至少一个校验插件,其中,每个所述校验插件用于实现一项校验功能,两两所述校验插件的校验功能完全不同;
利用所述至少一个校验插件组合成的校验插件集对所述待校验日志数据进行校验,并生成所述待校验日志数据的校验结果。
本申请实施例中的日志数据校验设备,通过以最小校验功能为单元将校验插件原子化,具有支持多个原子性的校验算子的特点,根据用户的日志校验需求可自由地、灵活地对校验算子进行组合,得到所需的校验规则,这样即使校验插件库中包含的校验插件数量是有限的,但是通过将这些有限的具有单一校验功能的校验插件的任意组合,能够得到满足各种日志校验需求的无限多的校验插件集,从而实现在校验插件的数量有限的情况下,也能够更好地满足用户多样化的日志校验需求,大大降低了校验插件的维护成本。
需要说明的是,由于这些设备所解决问题的原理与前述图7至9所述的校验方法相似,因此该设备的实施可以参见前述方法的实施,重复之处不再赘述。
进一步地,对应上述图1至图6所示的方法,基于相同的技术构思,本申请实施例还提供了一种存储介质,用于存储计算机可执行指令,在一个具体的实施例中,该存储介质可以为U盘、光盘、硬盘等,该存储介质存储的计算机可执行指令在被处理器执行时,能实现以下流程:
获取待校验日志数据;
获取用于表征日志校验需求的配置文件,并确定与所述配置文件对应的校验规则;
利用确定出的所述校验规则对所述待校验日志数据进行校验,并生成所述待校验日志数据的校验结果。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述获取用于表征日志校验需求的配置文件,包括:
接收用户终端发送的配置文件;或者,
根据用户终端发送的校验配置信息,生成与所述校验配置信息对应的配置文件;或者,
根据所述待校验日志数据的日志类型,生成与所述日志类型对应的配置文件。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述配置文件中的日志校验需求的语言格式符合JSON数据格式。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述确定与所述配置文件对应的校验规则,包括:
对所述配置文件进行解析,得到相应的日志校验需求;
根据所述日志校验需求,在校验插件库中选取与所述日志校验需求对应的至少一个校验插件,所述校验插件用于实现至少一项校验功能;
所述利用确定出的所述校验规则对所述待校验日志数据进行校验,包括:
利用选取出的所述至少一个校验插件对所述待校验日志数据进行校验。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述校验插件库中的每个校验插件用于实现一项校验功能,两两所述校验插件的校验功能完全不同;
所述利用选取出的所述至少一个校验插件对所述待校验日志数据进行校验,包括:
利用选取出的多个所述校验插件组合成的校验插件集对所述待校验日志数据进行校验。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,还实现以下流程:
接收用户终端发送的校验插件库更新请求,所述更新请求携带有待修改的校验插件标识及修改内容,或者所述更新请求携带有待增加的校验插件标识及程序代码,或者所述更新请求携带有待删除的校验插件标识;
根据所述更新请求对所述校验插件库进行更新,得到更新后的校验插件库。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述待校验日志数据包括多种日志类型的日志文件;
所述获取待校验日志数据之后,还包括:根据所述待校验日志数据中各日志文件的日志类型,将多个所述日志文件划分为多个类别,每个类别中包括至少一种日志类型的日志文件;
所述根据所述待校验日志数据的日志类型,生成与所述日志类型对应的配置文件,包括:针对每个类别,确定与该类别对应的校验项,并根据该校验项生成与该类别所对应的配置文件;
所述利用确定出的所述校验规则对所述待校验日志数据进行校验,包括:分别针对每个类别,利用确定出的与该类别对应的校验规则逐一对该类别中的所述至少一个日志文件进行校验,直到将该类别中所有日志文件校验完成。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,每个所述类别对应于一个校验级别;
所述根据所述待校验日志数据中各日志文件的日志类型,将多个所述日志文件划分为多个类别之后,还包括:
判断各所述类别中的日志文件的数量是否小于预设数量阈值;
若是,则将该类别中的至少一个日志文件,与高于该类别对应的校验级别的日志文件合并为一个类别。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述获取待校验日志数据之前,还包括:
对业务系统或者分布式数据处理系统传输的日志数据执行如下至少一种操作,并将执行如下至少一种操作后的日志数据作为待校验日志数据:
对接收到的已加密的日志数据进行解密处理;或者,
对接收到的已压缩的日志数据进行解压缩处理;或者,
对解密处理和/或解压缩处理后的日志数据进行完整性验证。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述利用确定出的所述校验规则对所述待校验日志数据进行校验,包括:利用确定出的所述校验规则对所述待校验日志数据包含的各待校验日志文件执行如下至少一种校验操作:
确定待校验日志文件中是否存在预设属性数据;或者,
确定待校验日志文件的日志类型是否正确;或者,
确定待校验日志文件中属性数据的长度是否符合预设长度要求;或者,
确定待校验日志文件中属性数据的值域是否符合预设值域要求;或者,
确定与待校验日志文件具有特定逻辑关系的关联日志文件是否存在。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,还实现以下流程:对所述校验结果执行如下至少一种操作:
将所述校验结果发送至对应的用户终端;或者,
将所述校验结果发送至对应的研发系统;或者,
将所述校验结果存入预设数据库中。
本申请实施例中的存储介质存储的计算机可执行指令在被处理器执行时,获取待校验日志数据;以及获取用于表征日志校验需求的配置文件,并确定与该配置文件对应的校验规则;利用确定出的校验规则对待校验日志数据进行校验,并生成该待校验日志数据的校验结果。相比于相关技术中人工日志校验方式或校验规则固定不变的校验方式,可以根据用户的实际校验需求自动匹配校验规则,从而达到校验规则可自由配置的效果,再利用该校验规则实现日志数据的自动校验,提高了日志校验方式的灵活性、可变性,无需修改业务系统的应用程序,即可实现结合不同的校验需求采用相应的校验规则对日志数据进行校验。
在另一个具体的实施例中,该存储介质可以为U盘、光盘、硬盘等,该存储介质存储的计算机可执行指令在被处理器执行时,能实现以下流程:
获取用于表征日志校验需求的配置文件,并根据所述配置文件,在校验插件库中选取与所述配置文件对应的至少一个校验插件,其中,每个所述校验插件用于实现一项校验功能,两两所述校验插件的校验功能完全不同;
利用所述至少一个校验插件组合成的校验插件集对所述待校验日志数据进行校验,并生成所述待校验日志数据的校验结果。
本申请实施例中的存储介质存储的计算机可执行指令在被处理器执行时,通过以最小校验功能为单元将校验插件原子化,具有支持多个原子性的校验算子的特点,根据用户的日志校验需求可自由地、灵活地对校验算子进行组合,得到所需的校验规则,这样即使校验插件库中包含的校验插件数量是有限的,但是通过将这些有限的具有单一校验功能的校验插件的任意组合,能够得到满足各种日志校验需求的无限多的校验插件集,从而实现在校验插件的数量有限的情况下,也能够更好地满足用户多样化的日志校验需求,大大降低了校验插件的维护成本。
需要说明的是,由于这些存储介质所解决问题的原理与前述图7至9所述的校验方法相似,因此该存储介质的实施可以参见前述方法的实施,重复之处不再赘述。
在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),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。