基于区块链的数据存证、取证方法及装置与流程

文档序号:17930543发布日期:2019-06-15 00:48阅读:408来源:国知局
基于区块链的数据存证、取证方法及装置与流程

本申请涉及区块链技术领域,尤其涉及一种基于区块链的数据存证、取证方法及装置。



背景技术:

微服务架构体系是一种新型的、流行的软件架构模式,其目的是将一个大型的单个应用程序或者服务的功能分散到多个离散的微服务中,每个微服务保持独立,且功能单一,各个微服务中间以调用的形式联系在一起,多个微服务组合在一起就可以实现其原有单一架构的功能,从而提供复杂的服务支持。由于微服务架构提下可以降低系统的耦合性,并且可以提供更加灵活的服务支持,因此,得到了广泛的应用。

相应的,在使用微服务架构体系进行业务处理的过程中,微服务架构体系中的每个微服务都会产生相应的业务数据。在实际应用中,为了便于在后续发生纠纷等情况时,可以提供有力的证据,一般会将业务数据中的某些关键数据或者全部数据写入区块链中进行存证。

但是,对于微服务架构体系而言,由于业务所对应的业务数据是分布在微服务架构体系的多个微服务中的,业务数据分布比较离散,因此会导致业务数据上链过程比较复杂。

因此,有必要提出一种技术方案,以便降低微服务架构体系中业务数据上链流程的复杂度。



技术实现要素:

本说明书实施例的目的是提供一种基于区块链的数据存证、取证方法及装置,预先通过注解的方式在调用链路的各服务节点声明目标业务在该服务节点需要进行上链的业务数据,这样,在目标业务的处理过程中,在相应的服务节点,可以自动的获取通过注解的方式声明的业务数据,并上传至区块链进行存储;避免了通过人工方式从调用链路的各个服务节点收集需要上链的数据,数据的收集简单方便,在数据上链过程中不需要人工参与,同时简化了业务数据上链的操作流程,使得业务数据上链存证的操作简单方便。

为解决上述技术问题,本说明书实施例是这样实现的:

本说明书实施例提供了一种基于区块链的数据存证方法,包括:

接收针对目标业务的业务请求;

在所述目标业务的处理过程中,根据预先标定的注解获取所述目标业务所对应的调用链路中每个服务节点所对应的业务数据;其中,所述调用链路中包括多个服务节点;所述注解用于指示获取标注有所述注解的业务数据;

将各服务节点所对应的业务数据存储至区块链中。

本说明书实施例还提供了一种基于区块链的数据取证方法,包括:

在对业务数据进行取证时,根据预先标定的注解确定需要取证的业务参数和所述业务参数所对应的目标业务的id;其中,所述注解用于指示获取需要取证的业务参数和对应的id;

根据所述id确定需要取证的业务参数所对应的哈希值;

基于所述哈希值从所述区块链中读取所述业务参数所对应的业务数据。

本说明书实施例还提供了一种基于区块链的数据存证装置,包括:

接收模块,用于接收针对目标业务的业务请求;

获取模块,用于在所述目标业务的处理过程中,根据预先标定的注解获取所述目标业务所对应的调用链路中每个服务节点所对应的业务数据;其中,所述调用链路中包括多个服务节点;所述注解用于指示获取标注有所述注解的业务数据;

第一存储模块,用于将各服务节点所对应的业务数据存储至区块链中。

本说明书实施例还提供了一种基于区块链的数据取证装置,包括:

第一确定模块,用于在对业务数据进行取证时,根据预先标定的注解确定需要取证的业务参数和所述业务参数所对应的目标业务的id;其中,所述注解用于指示获取需要取证的业务参数和对应的id;

第二确定模块,用于根据所述id确定需要取证的业务参数所对应的哈希值;

读取模块,用于基于所述哈希值从所述区块链中读取所述业务参数所对应的业务数据。

本说明书实施还提供了一种基于区块链的数据存证设备,包括:

处理器;以及

被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:

接收针对目标业务的业务请求;

在所述目标业务的处理过程中,根据预先标定的注解获取所述目标业务所对应的调用链路中每个服务节点所对应的业务数据;其中,所述调用链路中包括多个服务节点;所述注解用于指示获取标注有所述注解的业务数据;

将各服务节点所对应的业务数据存储至区块链中。

本说明书实施例还提供了一种基于区块链的数据取证设备,包括:

处理器;以及

被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:

在对业务数据进行取证时,根据预先标定的注解确定需要取证的业务参数和所述业务参数所对应的目标业务的id;其中,所述注解用于指示获取需要取证的业务参数和对应的id;

根据所述id确定需要取证的业务参数所对应的哈希值;

基于所述哈希值从所述区块链中读取所述业务参数所对应的业务数据。

本说明书实施例还提供了一种存储介质,用于存储计算机可执行指令,所述可执行指令在被执行时实现以下流程:

接收针对目标业务的业务请求;

在所述目标业务的处理过程中,根据预先标定的注解获取所述目标业务所对应的调用链路中每个服务节点所对应的业务数据;其中,所述调用链路中包括多个服务节点;所述注解用于指示获取标注有所述注解的业务数据;

将各服务节点所对应的业务数据存储至区块链中。

本说明书实施例还提供了一种存储介质,用于存储计算机可执行指令,所述可执行指令在被执行时实现以下流程:

在对业务数据进行取证时,根据预先标定的注解确定需要取证的业务参数和所述业务参数所对应的目标业务的id;其中,所述注解用于指示获取需要取证的业务参数和对应的id;

根据所述id确定需要取证的业务参数所对应的哈希值;

基于所述哈希值从区块链中读取所述业务参数所对应的业务数据。

本实施例中的技术方案,预先通过注解的方式在调用链路的各服务节点声明目标业务在该服务节点需要进行上链的业务数据,这样,在目标业务的处理过程中,在相应的服务节点,可以自动的获取通过注解的方式声明的业务数据,并上传至区块链进行存储;避免了通过人工方式从调用链路的各个服务节点收集需要上链的数据,数据的收集简单方便,在数据上链过程中不需要人工参与,同时简化了业务数据上链的操作流程,使得业务数据上链存证的操作简单方便。

附图说明

为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本说明书实施例提供的基于区块链的数据存证方法的方法流程图之一;

图2为本说明书实施例提供的基于区块链的数据存证方法的方法流程图之二;

图3为本说明书实施例提供的基于区块链的数据存证方法的方法流程图之三;

图4为本说明书实施例提供的基于区块链的数据存证方法的方法流程图之四;

图5为本说明书实施例提供的基于区块链的数据存证方法的流程示意图;

图6为本说明书实施例提供的基于区块链的数据取证方法的方法流程图之一;

图7为本说明书实施例提供的基于区块链的数据取证方法的方法流程图之二;

图8为本说明书实施例提供的基于区块链的数据取证方法的流程示意图;

图9为本说明书实施例提供的基于区块链的数据存证装置的模块组成示意图;

图10为本说明书实施例提供的基于区块链的数据取证装置的模块组成示意图;

图11为本说明书实施例提供的基于区块链的数据存证设备的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。

本说明书实施例所提供的方法可以应用于微服务架构体系的业务系统,所谓微服务架构体系则是将业务系统按照功能划分为多个服务节点,每个服务节点用于处理该项业务的其中一部分业务内容,各服务节点之间以调用的形式联系在一起,共同完成目标业务。因此,可以将微服务架构体系称为调用链路。

例如,针对某微服务架构体系,可以包括服务节点1、服务节点2和服务节点2,在进行某项业务处理时,由服务节点1、服务节点2和服务节点3共同完成该项业务。具体的,可以是由服务节点1接收用户发送的业务请求,服务节点1在完成其对应的业务处理后,向服务节点2发送处理请求,由服务节点2完成对应的业务处理,并由服务节点2向服务节点3发送处理请求,由服务节点3完成对应的业务处理,从而完成该项业务的处理。

为便于理解,以单向的支付流程为例介绍该支付系统所对应的调用链路。

当商家发起支付请求时,首先调用链路中的第三方支付系统的网关接收到商家发起的支付请求,第三方支付系统的网关对该支付请求执行校验、鉴权、转换等处理操作,并在操作处理后将该支付请求发送给交易系统,交易系统在接收到该支付请求后,会通过第三方支付系统的网关向第三方支付系统发起支付请求,第三方支付系统确定所访问的银行通道,并向该银行通道发送支付请求,该银行通过向选定的银行发起支付请求。在该支付流程中,第三方支付系统的网关、第三方支付系统、交易系统、银行通道以及银行共同完成该项支付业务,因此,第三方支付系统的网关、第三方支付系统、交易系统、银行通道以及银行共同构成该支付流程所对应的调用链路。

本说明书实施例的思想在于,在业务服务节点所对应的调用链路的各服务节点的程序代码中通过注解的方式声明该服务节点需要上传至区块链的业务数据。这样,在该服务节点进行目标业务的处理时,当产生了标注有上述注解的业务数据后,业务服务节点会自动获取并暂存该业务数据,不需要再通过人为的方式获取该业务数据,并在调用链路的最后一个服务节点执行完目标业务时,将该项业务所对应的所有需要上链的业务数据(包括调用链路中各个服务节点中需要上链的业务数据)写入区块链中。

需要说明的是,上述各服务节点的程序代码可以为通过java语言编写的代码,也可以是通过其他语言编写的代码,本说明书实施例并不对此进行限定。

其中,本说明书实施例提供的基于区块链的数据存证方法可以应用于业务系统,即该方法的执行主体为业务系统,具体的,可以为安装在业务系统上的基于区块链的数据存证装置。

图1为本说明书实施例提供的基于区块链的数据存证方法的方法流程图之一,图1所示的方法,至少包括如下步骤:

步骤102,接到针对目标业务的业务请求。

另外,本说明书实施例所提及到的目标业务可以为任意需要处理的业务,例如,可以为支付业务、商品购买业务等。

步骤104,在目标业务的处理过程中,根据预先标定的注解获取目标业务所对应的调用链路中每个服务节点所对应的业务数据;其中,该调用链路包括多个服务节点,上述注解用于指示获取标注有上述注解的业务数据。

需要说明的是,上述注解可以是在业务开发阶段进行标定的,在业务开发阶段对各个服务节点需要上链的业务数据进行标定,对需要上链的业务数据进行标定实际上就是声明该业务数据需要上传至区块链,在生成该业务数据后,则需要获取并保存该业务数据。

目标业务在被处理的过程中,需要经过上述调用链路中的各个服务节点进行对目标业务进行相应的处理,因此,上述步骤104在具体实施时,目标业务在经过每个服务节点进行处理的过程中,都需要根据该服务节点上预先标定的注解获取该服务节点所对应的业务数据。

为便于理解,下述将举例进行说明。

例如,在某个具体实现方式中,目标业务所对应的调用链路包括服务节点1、服务节点2和服务节点3共三个服务节点,首先由服务节点1接收用户触发的业务请求,依次由服务节点1、服务节点2和服务节点3进行该项业务的处理。当服务节点1在处理目标业务中相应的业务内容时,则根据服务节点1所对应的编程代码中预先标定的注解获取目标业务在服务节点1所产生的业务数据,当服务节点2在处理目标业务中相应的业务内容时,则根据服务节点2所对应的编程代码中预先标定的注解获取目标业务在服务节点2所产生的业务数据,当服务节点3在处理目标业务中相应的业务内容时,则根据服务节点3所对应的编程代码中预先标定的注解获取目标业务在服务节点3所产生的业务数据。

步骤106,将各服务节点所对应的业务数据存储至区块链中。

本说明书实施例提供的基于区块链的数据存证方法,在业务开发阶段,通过注解的方式直接在各服务节点所对应的程序代码中对各服务节点中需要上传至区块链的业务数据进行标定,这样,在进行目标业务的处理过程中,在各个服务节点可以自动获取该服务节点需要上传至区块链的业务数据,使得业务数据的收集简单方便,并且避免了业务人员的参与,减少了工作量。

另外,本说明书实施例提供的方法还包括:

接收到针对目标业务的业务请求时,生成该目标业务所对应的id。

其中,上述唯一编码(identification,id)为该目标业务所对应的唯一标识。在具体实施时,当业务系统接收到目标业务的业务请求时,可以触发发号器产生针对该目标业务的id。具体的,该发号器可以为分布式的可扩展的发号器。

相应的,本说明书实施例提供的方法还包括:

将目标业务的id与各服务节点所对应的业务数据关联的存储至区块链。

具体的,在本说明书实施例中,将目标业务的id一起存储在区块链中,这样在对数据进行校验时,从区块链中读取数据后,可以将从区块链中读取的id与查询id进行校验,即出了进行数据的校验外,还可以进行id的校验,通过上述双重校验,可以进一步提高数据校验的准确性。

上述id则为可以表征该项目标业务的唯一标识,在具体实施时,可以将各服务节点所对应的业务数据与上述id打包在一起,然后上传至区块链中。

图2为本说明书实施例提供的基于区块链的数据存证方法的方法流程图之二,图2所示的方法,至少包括如下步骤:

步骤202,接收到针对目标业务的业务请求后,生成针对目标业务的id。

步骤204,在目标业务的处理过程中,根据预先标定的注解获取目标业务所对应的调用链路中每个服务节点所对应的业务数据;其中,该调用链路包括多个服务节点,上述注解用于指示获取标注有上述注解的业务数据。

步骤206,将各服务节点所对应的业务数据及目标业务的id关联的存储至区块链。

具体的,在本说明书实施例中,在将各服务节点所对应的业务数据存储至区块链中后,本说明书实施例所提供的方法还包括如下步骤:

接收区块链返回的哈希值;其中,上述哈希值用于从区块链中读取目标业务所对应的数据;

建立并存储上述id与哈希值的映射关系。

在本说明书实施例中,在将目标业务所对应的所有业务数据存储至区块链中时,在区块链中会生成针对该目标业务的哈希值,在区块链中将哈希值和业务数据对应的进行存储。在区块链中生成该哈希值后,区块链会将该哈希值返回给业务系统,以使业务系统存储目标业务的id与该哈希值的映射关系,这样,便于业务系统后续从区块链中读取数据。

图3为本说明书实施例提供的基于区块链的数据存证方法的方法流程图之三,图3所示的方法至少包括如下步骤:

步骤302,接收到针对目标业务的业务请求时,生成目标业务所对应的id。

步骤304,在目标业务的处理过程中,根据预先标定的注解获取目标业务所对应的调用链路中每个服务节点所对应的业务数据。

步骤306,将各服务节点所对应的业务数据及其关联的id存储至区块链中。

步骤308,接收区块链返回的哈希值。

步骤310,建立并存储目标业务的id与上述哈希值的映射关系。

在具体实施时,上述步骤104中,在目标业务的处理过程中,根据预先标定的注解获取目标业务的调用链路中每个服务节点所对应的目标数据,具体包括如下步骤一和步骤二;

步骤一、在通过每个服务节点处理上述目标业务时,获取上述服务节点中用注解标定的业务参数和该业务参数的参数值;

步骤二、将获取的用上述注解标定的业务参数和对应的参数值确定为上述服务节点所对应的业务数据。

例如,上述目标业务为支付业务,则上述业务参数可以为支付时间、支付金额等字段,相应的业务参数的参数值则为各业务参数所对应的具体取值。例如,支付金额50元,则“支付金额”则为业务参数,“50元”则为业务参数对应的参数值。

在具体实施时,在通过调用链路中的某个服务节点处理上述目标业务时,当该服务节点产生了针对目标业务的业务数据时,则从该业务数据中查找标定有注解的业务参数,获取标定有注解的业务参数和对应的参数值,并将该业务参数和对应的参数值确定为该服务节点中需要上传至区块链的业务数据。

另外,在具体实施时,一般是在目标业务处理完成时,才将目标业务所对应的所有业务数据(包括各服务节点所对应的业务数据)上链,因此,各个服务节点中获取到该服务节点所对应的业务数据后,需要将该服务节点所对应的业务数据进行暂存,因此,在根据预先标定的注解获取到目标业务的调用链路中每个服务节点所对应的业务数据之后,本说明书实施例所提供的方法还包括:

针对每个服务节点所对应的业务数据,将上述业务数据存储在该服务节点所对应的业务处理线程的线程局部变量threadlocal中。

例如,在具体实施时,在通过调用链路中的服务节点1对目标业务进行处理时,在获取到服务节点1所对应的业务数据后,则将服务节点1所对应的业务数据存储在服务节点1所对应的业务处理线程的threadlocal中;在通过调用链路中的服务节点2对目标业务进行处理时,在获取到服务节点2所对应的业务数据后,则将服务节点2所对应的而业务数据存储在服务节点2所对应的业务处理线程的threadlocal中。

在具体实施时,在上述步骤106中,将各服务节点所对应的业务数据及其关联的id写入区块链中,具体包括如下步骤(1)、步骤(2)和步骤(3);

步骤(1)、确定对各服务节点所对应的业务数据进行聚合的数据聚合方式;其中,该数据聚合方式包括将业务数据在各服务节点之间通过网络通信协议进行传递的聚合方式,或者,将各服务节点所对应的业务数据存储至中心代理节点的聚合方式;

步骤(2)、按照上述聚合方式将各服务节点所对应的业务数据进行聚合,得到上述目标业务所对应的业务数据集合;

步骤(3)、将上述业务数据集合及其关联的id存储至区块链中。

具体的,在本说明书实施例中,可以预先声明对目标业务所对应的数据聚合方式。具体的,可以在业务系统的配置文件中声明,也可以通过注解的方式在目标服务节点的程序代码中声明。

因此,在上述步骤(1)中,确定对各服务节点所对应的业务数据进行聚合的聚合方式,具体包括:

根据业务系统的程序代码中的注解确定对各系统所对应的业务数据进行聚合的数据聚合方式;

或者,根据业务系统的配置文件中的声明信息确定对各系统所对应的业务数据进行聚合的数据聚合方式。

需要说明的是,在本说明书实施例中,上述用于声明聚合方式的注解可以标注在业务系统的全局程序代码中,也可以标注在调用链路的某个服务节点的程序代码中。

另外,在本说明书实施例中,在声明数据聚合方式时,可以针对某类型的业务声明其对应的数据聚合方式,例如,可以声明针对支付类业务,所对应的数据聚合方式为xx,针对娱乐类业务,所对应的数据聚合方式为xx等;或者,还可以针对时间段声明对应的数据聚合方式,例如,可以声明在每天的白天所对应的数据聚合方式为xx,在每天的晚上所对应的数据聚合方式为xx。当然,此处只是示例性说明两种数据聚合方式的具体声明方式,除此之外,还可以按照实际业务需求声明数据聚合方式,本说明书实施例并不对此进行限定。

下述将详细介绍上述两种聚合方式的具体实现过程。

第一种聚合方式:将业务数据在各服务节点之间通过网络通信协议进行传递的聚合方式。

其中,上述数据通信协议可以为各服务节点之间的http协议,具体的,在将业务数据在各服务节点之间进行传递时可以将业务数据携带在http协议的httpheader中进行传递。

为便于理解,下述将通过具体实施例进行说明。

例如,目标业务所对应的调用链路包括服务节点1、服务节点2和服务节点3共三个服务节点,目标业务依次通过服务节点1、服务节点2和服务节点3进行相应的处理,目标业务在通过服务节点1处理相应的业务内容时,将服务节点1中标定有注解的业务数据作为服务节点1的业务数据,并将该业务数据保存在服务节点1所对应的业务处理线程的threadlocal中,在服务节点1处理完相应的业务内容后,向服务节点2发送处理请求,具体的,该处理请求可以通过http的方式发送,并且将存储在threadlocal中的业务数据携带在该http请求的httpheader中发送给服务节点2,服务节点2将接收到的服务节点1的业务数据保存在服务节点2所对应的业务处理线程的threadlocal中,服务节点2在处理相应的业务内容时,将服务节点2中标定有注解的业务数据作为服务节点2的业务数据,并将该业务数据保存在服务节点2所对应的业务处理线程的threadlocal中,在服务节点2处理完相应的业务内容后,向服务节点3发送处理请求,具体的,该处理请求可以通过http的方式发送,并且将存储在threadlocal中的目标节点1的业务数据和目标节点2的业务数据携带在该http请求的httpheader中发送给服务节点3,这样,服务节点1、服务节点2和服务节点3所对应的业务数据均聚合在服务节点3所对应的业务处理线程的threadlocal中,最终,可以通过服务节点3将目标业务所对应的所有的业务数据存储至区块链中。

需要说明的是,在该种数据聚合方式中,可以将目标业务的id携带在httpheader中跟随业务数据一起进行传递,这样,存储在每个服务节点所对应业务处理线程的threadlocal中的则为业务数据及目标业务的id的对应关系。

另外,在本说明书实施例中,将各服务节点所对应的业务数据携带在httpheader中传递给下一个服务节点,这样,可以避免通过各服务节点之间的业务接口进行业务数据的传递,从而可以与业务处理区分开,缓解业务处理接口的数据压力。

第二种聚合方式:将各服务节点所对应的业务数据存储至中心代理节点的聚合方式。

在该种聚合方式中,则是各服务节点将其所对应的业务数据存储至中心代理节点,当然,每个服务节点发送给中心代理服务节点的业务数据均需要携带目标业务的id,在中心代理节点存储有个服务节点所对应的业务数据及目标业务的id的对应关系。

当目标业务处理完成后,则将存储在中心代理节点的目标业务所对应的业务数据集合存储至区块链中。

另外,需要说明的是,在本说明书实施例中,由于目标业务需要经过多个服务节点进行处理,因此,为了便于各服务节点可以区分其所处理的为哪个业务,目标业务在调用链路中传递的过程中,该目标业务所对应的id需要跟随目标业务在调用链路的各服务节点中进行传递。

因此,本说明书实施例所提供的方法,还包括如下步骤:

在目标业务的处理过程中,将目标业务的id通过各服务节点所对应的业务处理线程的线程局部变量和各服务节点之间的网路通信协议在调用链路中传输。

需要说明的是,在各服务节点内目标业务的id通过threadlocal进行传递,在服务节点之间则通过网络通信协议传输,具体的,可以携带在httpheader中在各服务节点之间进行传输。

为便于理解本说明书实施例所提供的基于区块链的数据存证方法,下述将通过具体实施例进行说明。

图4为本说明书实施例提供的基于区块链的数据存证方法的方法流程图之四,图4所示的方法至少包括如下步骤:

步骤402,接收到针对目标业务的业务请求时,生成目标业务所对应的id。

步骤404,在通过目标业务所对应的调用链路中的每个服务节点处理目标业务时,获取该服务节点中用注解标定的业务参数及其对应的参数值。

步骤406,将获取的用注解标定的业务参数和对应的参数值确定为该服务节点所对应的业务数据。

步骤408,确定目标业务所对应的数据聚合方式。

步骤410,按照上述所确定的数据聚合方式对各服务节点所对应的业务数据进行聚合,得到目标业务所对应的业务数据集合。

步骤412,将上述业务数据集合及目标业务关联的写入区块链中。

步骤414,接收区块链返回的目标业务所对应的哈希值;其中,该哈希值用于从区块链中读取目标业务所对应的数据。

步骤416,建立并存储目标业务的id与上述哈希值的映射关系。

针对图4所示的基于区块链的数据存证方法,图5示出了该数据存证方法的流程示意图,如图5所示。

接收到目标业务请求后,生成目标业务所对应的id,记为traceid,基于预先标定的注解获取目标业务所对应的业务数据集合,记为contentcollection,将contentcollection和对应的traceid打包写入区块链中,接收区块链返回的哈希值,记为hashtraceid,记录traceid和hashtraceid的映射关系。

另外,在本说明书实施例中在将业务数据上传至区块链中时所涉及到的部分代码如下所示:

public@perpetuationresult

dotrade(@perpetuationstringtestimony){

//businesslogic}

本说明书实施例提供的基于区块链的数据存证方法,预先通过注解的方式在调用链路的各服务节点声明目标业务在该服务节点需要进行上链的业务数据,这样,在目标业务的处理过程中,在相应的服务节点,可以自动的获取通过注解的方式声明的业务数据,并上传至区块链进行存储;避免了通过人工方式从调用链路的各个服务节点收集需要上链的数据,数据的收集简单方便,在数据上链过程中不需要人工参与,同时简化了业务数据上链的操作流程,使得业务数据上链存证的操作简单方便。

对应于本说明书实施例提供的基于区块链的数据存证方法,基于相同的思路,本说明书实施例还提供了一种基于区块链的数据取证方法,该数据取证方法应用于业务系统,用于从区块链中读取数据,图6为本说明书实施例提供的基于区块链的数据取证方法的方法流程图之一,图6所示的方法至少包括如下步骤:

步骤602,在对业务数据进行取证时,根据预先标定的注解确定需要取证的业务参数和该业务参数所对应的目标业务的id;其中,上述注解用于指示获取需要取证的业务数据和对应的id。

步骤604,根据上述id确定需要取证的业务参数所对应的哈希值。

步骤606,基于上述哈希值从区块链中读取上述业务参数所对应的业务数据。

其中,上述注解可以为业务开发阶段进行标定的,在业务开发阶段对需要进行取证的业务参数进行标定,对需要取证的业务参数进行标定实际上是声明自动获取该业务参数以及该业务参数所属的目标业务的id。

在具体实施时,当用户通过业务系统进行业务数据取证时,业务系统在接收到用户触发的取证请求后,会调用业务系统所对应的调用链路的各服务节点的程序代码,从而根据该程序代码中预先标定的注解确定需要获取的业务参数以及该业务参数所属的目标业务的id。

需要说明的是,根据程序代码中预先标定的注解确定目标业务的id实际上则是从该程序代码运行的环境中得到目标业务的id等,具体的,可以从程序代码的参数中提取目标业务的id。

由于在将目标业务的业务数据写入区块链中时,在业务系统中存储有各目标业务的id和区块链返回的哈希值的映射关系,因此,在确定出目标业务的id后,则根据目标业务的id和预先存储的上述各id和哈希值的映射关系,确定目标业务的id所对应的哈希值,并从区块链中读取该哈希值所对应的业务数据。

具体的,在本说明书实施例中,用户在对业务数据进行取证时,针对不同的应用场景,用户输入取证请求的界面存在区别。在一种具体实施方式中,用户可以直接在发送取证请求的界面上输入目标业务的id。当然,在其他实施方式中,在发送取证请求的界面上可以不带有目标业务的输入接口,例如,司法系统等。本说明书实施例并不对展示给用户的取证请求的发送界面的具体形式进行限定,在具体应用时,可以根据实际应用场景进行设置。

另外,在本说明书实施例中,进行取证时所涉及到的部分程序代码如下所示:

@validate(content="testimony",hash="txhash")

publicstringvalidtrade(stringtestimony,stringtxhash){

//getfromdb

}

另外,在本说明书实施例中,在基于哈希值从区块链中读取目标业务所对应的业务数据之前,本说明书实施例提供的方法还包括如下步骤:

判断区块链中是否存在该哈希值所对应的业务数据。

即在该步骤中则是基于上述哈希值查找区块链中是否存在该哈希值所对应的业务数据,若是在区块链中未查找到该哈希值所对应的业务数据,则判断出该业务参数所对应的业务数据的取证异常(可能是未在区块链存储该业务数据或者其他导致的),从而抛出业务取证异常的提示。

另外,在本说明书实施例中,在某些情况下,在从区块链中读取了业务数据后,还需要对业务数据进行校验,具体的,可以通过将从区块链中读取的数据与从业务系统中读取的数据进行比对的方式进行校验,因此,本说明书实施例提供的方法,还包括:

从业务系统获取上述业务参数所对应的业务数据;基于从区块链中读取的业务数据和从业务系统获取的上述业务数据对业务参数所对应的数据进行校验。

在本说明书实施例中,在基于预先标定的注解确定需要取证的业务参数后,在从区块链读取相应的业务数据的同时,还需要从业务系统获取该业务参数所对应的业务数据,并将从业务系统获取的业务数据以及从区块链中读取的业务数据进行比对,若是两者一致,则校验通过。

图7为本说明书实施例提供的基于区块链的数据取证方法的方法流程图之二,图7所示的方法至少包括如下步骤:

步骤702,在对业务数据进行取证时,调用业务系统的调用链路的各服务节点所对应的程序代码。

步骤704,根据在上述程序代码中预先标定的注解确定需要取证的业务参数和该业务参数所对应的目标业务的id。

步骤706,根据目标业务的id和预先存储的各id和哈希值的映射关系,确定上述目标业务的id所对应的哈希值。

步骤708,从区块链中查找并读取上述哈希值所对应的业务数据。

步骤710,从业务系统获取上述业务参数所对应的业务数据。

步骤712,校验从业务系统获取的业务数据和从区块链中读取的业务数据是否一致;若一致,则执行步骤714;否则执行步骤716。

步骤714,确定校验通过。

步骤716,确定校验异常。

针对图7所示的基于区块链的数据取证方法,图8示出了该数据取证方法的流程示意图,如图8所示。

接收到业务数据取证请求后,调用业务系统的调用链路的各服务节点所对应的程序代码,根据该程序代码中预先标注的注解确定需要取证的业务参数和目标业务的id,记为traceid,确定该traceid所对应的哈希值,记为hashtraceid,基于hashtraceid从区块链中读取业务数据,记为contentcollection1,从业务系统读取上述业务参数所对应的业务数据,记为contentcollection2,将contentcollection1和contentcollection2进行比对,校验两者是否一致,若一致则校验通过,否则校验不通过。

其中,本说明书实施例提供的基于区块链的数据取证方法中与基于区块链的数据存证方法中相同的部分可参考本说明书实施例提供的基于区块链的数据存证方法,此处不再赘述。

本说明书实施例提供的基于区块链的数据取证方法,预先通过注解的方式在调用链路的各服务节点声明目标业务在该服务节点需要进行取证的业务参数,这样,在进行业务数据的取证时,可以自动的确定需要取证的业务参数以及相应的业务id,从而可以基于该业务参数和id进行业务数据的取证以及校验;避免了通过人工方式从输入需要取证的业务参数,简化了业务数据下链的操作流程,方便用户从区块链进行业务数据的取证。

对应于本说明书实施例提供的基于区块链的数据存证方法,基于相同的思路,本说明书实施例还提供了一种基于区块链的数据存证装置,用于执行本说明书实施例提供的基于区块链的数据存证方法,图9为本说明书实施例提供的基于区块链的数据存证装置的模块组成示意图,图9所示的装置,包括:

接收模块902,用于接收针对目标业务的业务请求;

获取模块904,用于在目标业务的处理过程中,根据预先标定的注解获取目标业务所对应的调用链路中每个服务节点所对应的业务数据;其中,调用链路中包括多个服务节点;注解用于指示获取标注有注解的业务数据;

第一存储模块906,用于将各服务节点所对应的业务数据存储至区块链中。

可选的,上述获取模块904,包括:

获取单元,用于在通过每个服务节点处理目标业务时,获取服务节点中用注解标定的业务参数和该业务参数的参数值;

第一确定单元,用于将获取的用注解标定的业务参数和对应的参数值确定为服务节点所对应的业务数据。

可选的,本说明书实施例提供的装置,还包括:

第二存储模块,用于针对每个服务节点所对应的业务数据,将业务数据存储在服务节点所对应的业务处理线程的线程局部变量中。

可选的,上述第一存储模块906,包括:

第二确定单元,用于确定对各服务节点所对应的业务数据进行聚合的数据聚合方式;其中,数据聚合方式包括将业务数据在各服务节点之间通过网络通信协议进行传递的聚合方式,或者,将各服务节点所对应的业务数据存储至中心代理节点的聚合方式;

聚合单元,用于按照数据聚合方式将各服务节点所对应的业务数据进行聚合,得到目标业务所对应的业务数据集合;

存储单元,用于将业务数据集合存储至区块链中。

可选的,上述第二确定单元,具体用于:

根据业务系统的程序代码中的注解确定对各服务节点所对应的业务数据进行聚合的数据聚合方式;

或者,根据业务系统的配置文件中的声明信息确定对各服务节点所对应的业务数据进行聚合的数据聚合方式。

可选的,本说明书实施例提供的装置还包括:

生成模块,用于接收到针对目标业务的业务请求时,生成目标业务所对应的唯一编码id。

可选的,本说明书实施例提供的装置还包括:

传递模块,用于在目标业务的处理过程中,将目标业务的id通过各服务节点所对应的业务处理线程的线程局部变量和各服务节点之间的网路通信协议在调用链路中传递。

可选的,本说明书实施例提供的装置还包括:

接收模块,用于接收区块链返回的哈希值;其中,哈希值用于从区块链中读取目标业务所对应的数据;

建立模块,用于建立并存储id与哈希值的映射关系。

可选的,本说明书实施例提供的装置还包括:

第三存储模块,用于将目标业务的id与各服务节点所对应的业务数据关联的存储至区块链。

本说明书实施例的基于区块链的数据存证装置还可执行图1-图5中基于区块链的数据存证装置执行的方法,并实现基于区块链的数据存证装置在图1-图5所示实施例的功能,在此不再赘述。

本说明书实施例提供的基于区块链的数据存证装置,预先通过注解的方式在调用链路的各服务节点声明目标业务在该服务节点需要进行上链的业务数据,这样,在目标业务的处理过程中,在相应的服务节点,可以自动的获取通过注解的方式声明的业务数据,并上传至区块链进行存储;避免了通过人工方式从调用链路的各个服务节点收集需要上链的数据,数据的收集简单方便,在数据上链过程中不需要人工参与,同时简化了业务数据上链的操作流程,使得业务数据上链存证的操作简单方便。

对应于本说明书实施例提供的基于区块链的数据取证方法,基于相同的思路,本说明书实施例提供了一种基于区块链的数据取证装置,用于执行本说明书实施例提供的基于区块链的数据取证方法,图10为本说明书实施例提供的基于区块链的数据取证装置的模块组成示意图,图10所示的装置,至少包括:

第一确定模块1002,用于在对业务数据进行取证时,根据预先标定的注解确定需要取证的业务参数和业务参数所对应的目标业务的id;其中,注解用于指示获取需要取证的业务参数和对应的id;

第二确定模块1004,用于根据id确定需要取证的业务参数所对应的哈希值;

读取模块1006,用于基于哈希值从区块链中读取业务参数所对应的业务数据。

可选的,本说明书实施例提供的装置,还包括:

获取模块,用于从业务系统获取业务参数所对应的业务数据;

校验模块,用于基于从区块链中读取的业务数据和从业务系统获取的业务数据对业务参数所对应的数据进行校验。

可选的,本说明书实施例提供的装置,还包括:

判断模块,用于判断区块链中是否存在上述哈希值所对应的业务数据。

本说明书实施例的基于区块链的数据取证装置还可执行图6-图8中基于区块链的数据取证装置执行的方法,并实现基于区块链的数据取证装置在图6-图8所示实施例的功能,在此不再赘述。

本说明书实施例提供的基于区块链的数据取证装置,预先通过注解的方式在调用链路的各服务节点声明目标业务在该服务节点需要进行取证的业务参数,这样,在进行业务数据的取证时,可以自动的确定需要取证的业务参数以及相应的业务id,从而可以基于该业务参数和id进行业务数据的取证以及校验;避免了通过人工方式从输入需要取证的业务参数,简化了业务数据下链的操作流程,方便用户从区块链进行业务数据的取证。

进一步地,基于上述图1至图5所示的方法,本说明书实施例还提供了一种基于区块链的数据存证设备,如图11所示。

基于区块链的数据存证设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上的处理器1101和存储器1102,存储器1102中可以存储有一个或一个以上存储应用程序或数据。其中,存储器1102可以是短暂存储或持久存储。存储在存储器1102的应用程序可以包括一个或一个以上模块(图示未示出),每个模块可以包括对基于区块链的数据存证设备中的一系列计算机可执行指令信息。更进一步地,处理器1101可以设置为与存储器1102通信,在基于区块链的数据存证设备上执行存储器1102中的一系列计算机可执行指令信息。基于区块链的数据存证设备还可以包括一个或一个以上电源1103,一个或一个以上有线或无线网络接口1104,一个或一个以上输入输出接口1105,一个或一个以上键盘906等。

在一个具体的实施例中,基于区块链的数据存证设备包括有存储器,以及一个或一个以上的程序,其中一个或者一个以上程序存储于存储器中,且一个或者一个以上程序可以包括一个或一个以上模块,且每个模块可以包括对基于区块链的数据存证设备中的一系列计算机可执行指令信息,且经配置以由一个或者一个以上处理器执行该一个或者一个以上程序包含用于进行以下计算机可执行指令信息:

接收针对目标业务的业务请求;

在目标业务的处理过程中,根据预先标定的注解获取目标业务所对应的调用链路中每个服务节点所对应的业务数据;其中,调用链路中包括多个服务节点;注解用于指示获取标注有注解的业务数据;

将各服务节点所对应的业务数据存储至区块链中。

可选的,计算机可执行指令信息在被执行时,在目标业务的处理过程中,根据预先标定的注解获取目标业务所对应的调用链路中每个服务节点所对应的目标数据,包括:

在通过每个服务节点处理目标业务时,获取服务节点中用注解标定的业务参数和该业务参数的参数值;

将获取的用注解标定的业务参数和对应的参数值确定为服务节点所对应的业务数据。

可选的,计算机可执行指令信息在被执行时,根据预先标定的注解获取目标业务所对应的调用链路中每个服务节点所对应的业务数据之后,方法还包括:

针对每个服务节点所对应的业务数据,将业务数据存储在服务节点所对应的业务处理线程的线程局部变量中。

可选的,计算机可执行指令信息在被执行时,将各服务节点所对应的业务数据存储至区块链中,包括:

确定对各服务节点所对应的业务数据进行聚合的数据聚合方式;其中,数据聚合方式包括将业务数据在各服务节点之间通过网络通信协议进行传递的聚合方式,或者,将各服务节点所对应的业务数据存储至中心代理节点的聚合方式;

按照数据聚合方式将各服务节点所对应的业务数据进行聚合,得到目标业务所对应的业务数据集合;

将业务数据集合存储至区块链中。

可选的,计算机可执行指令信息在被执行时,确定对各服务节点所对应的业务数据进行聚合的数据聚合方式,包括:

根据业务系统的程序代码中的注解确定对各服务节点所对应的业务数据进行聚合的数据聚合方式;

或者,根据业务系统的配置文件中的声明信息确定对各服务节点所对应的业务数据进行聚合的数据聚合方式。

可选的,计算机可执行指令信息在被执行时,还可以执行如下步骤:

接收到针对目标业务的业务请求时,生成目标业务所对应的唯一编码id。

可选的,计算机可执行指令信息在被执行时,还可以执行如下步骤:

在目标业务的处理过程中,将目标业务的id通过各服务节点所对应的业务处理线程的线程局部变量和各服务节点之间的网路通信协议在调用链路中传递。

可选的,计算机可执行指令信息在被执行时,将各服务节点所对应的业务数据存储至区块链中之后,方法还包括:

接收区块链返回的哈希值;其中,哈希值用于从区块链中读取目标业务所对应的数据;

建立并存储id与哈希值的映射关系。

可选的,计算机可执行指令信息在被执行时,还可执行如下步骤:

将目标业务的id与各服务节点所对应的业务数据关联的存储至区块链。

本说明书实施例提供的基于区块链的数据存证设备,预先通过注解的方式在调用链路的各服务节点声明目标业务在该服务节点需要进行上链的业务数据,这样,在目标业务的处理过程中,在相应的服务节点,可以自动的获取通过注解的方式声明的业务数据,并上传至区块链进行存储;避免了通过人工方式从调用链路的各个服务节点收集需要上链的数据,数据的收集简单方便,在数据上链过程中不需要人工参与,同时简化了业务数据上链的操作流程,使得业务数据上链存证的操作简单方便。

进一步地,基于上述图6至图8所示的方法,本说明书实施例还提供了一种基于区块链的数据取证设备,基于区块链的数据取证设备的结构示意图与基于区块链的数据存证设备的结构示意图一致,如图11所示。

在一个具体的实施例中,基于区块链的数据取证设备包括有存储器,以及一个或一个以上的程序,其中一个或者一个以上程序存储于存储器中,且一个或者一个以上程序可以包括一个或一个以上模块,且每个模块可以包括对基于区块链的数据存证设备中的一系列计算机可执行指令信息,且经配置以由一个或者一个以上处理器执行该一个或者一个以上程序包含用于进行以下计算机可执行指令信息:

在对业务数据进行取证时,根据预先标定的注解确定需要取证的业务参数和业务参数所对应的目标业务的id;其中,注解用于指示获取需要取证的业务参数和对应的id;

根据id确定需要取证的业务参数所对应的哈希值;

基于哈希值从区块链中读取业务参数所对应的业务数据。

可选的,计算机可执行指令信息在被执行时,还可以执行如下步骤:

从业务系统获取业务参数所对应的业务数据;

基于从区块链中读取的业务数据和从业务系统获取的业务数据对业务参数所对应的数据进行校验。

可选的,计算机可执行指令信息在被执行时,基于哈希值从区块链中读取目标业务所对应的业务数据之前,还可以执行如下步骤:

判断区块链中是否存在哈希值所对应的业务数据。

本说明书实施例提供的基于区块链的数据取证设备,预先通过注解的方式在调用链路的各服务节点声明目标业务在该服务节点需要进行取证的业务参数,这样,在进行业务数据的取证时,可以自动的确定需要取证的业务参数以及相应的业务id,从而可以基于该业务参数和id进行业务数据的取证以及校验;避免了通过人工方式从输入需要取证的业务参数,简化了业务数据下链的操作流程,方便用户从区块链进行业务数据的取证。

进一步地,基于上述图1至图5所示的方法,本说明书实施例还提供了一种存储介质,用于存储计算机可执行指令信息,一种具体的实施例中,该存储介质可以为u盘、光盘、硬盘等,该存储介质存储的计算机可执行指令信息在被处理器执行时,能实现以下流程:

接收针对目标业务的业务请求;

在目标业务的处理过程中,根据预先标定的注解获取目标业务所对应的调用链路中每个服务节点所对应的业务数据;其中,调用链路中包括多个服务节点;注解用于指示获取标注有注解的业务数据;

将各服务节点所对应的业务数据存储至区块链中。

可选的,该存储介质存储的计算机可执行指令信息在被处理器执行时,在目标业务的处理过程中,根据预先标定的注解获取目标业务所对应的调用链路中每个服务节点所对应的目标数据,包括:

在通过每个服务节点处理目标业务时,获取服务节点中用注解标定的业务参数和该业务参数的参数值;

将获取的用注解标定的业务参数和对应的参数值确定为服务节点所对应的业务数据。

可选的,该存储介质存储的计算机可执行指令信息在被处理器执行时,根据预先标定的注解获取目标业务所对应的调用链路中每个服务节点所对应的业务数据之后,方法还包括:

针对每个服务节点所对应的业务数据,将业务数据存储在服务节点所对应的业务处理线程的线程局部变量中。

可选的,该存储介质存储的计算机可执行指令信息在被处理器执行时,将各服务节点所对应的业务数据存储至区块链中,包括:

确定对各服务节点所对应的业务数据进行聚合的数据聚合方式;其中,数据聚合方式包括将业务数据在各服务节点之间通过网络通信协议进行传递的聚合方式,或者,将各服务节点所对应的业务数据存储至中心代理节点的聚合方式;

按照数据聚合方式将各服务节点所对应的业务数据进行聚合,得到目标业务所对应的业务数据集合;

将业务数据集合存储至区块链中。

可选的,该存储介质存储的计算机可执行指令信息在被处理器执行时,确定对各服务节点所对应的业务数据进行聚合的数据聚合方式,包括:

根据业务系统的程序代码中的注解确定对各服务节点所对应的业务数据进行聚合的数据聚合方式;

或者,根据业务系统的配置文件中的声明信息确定对各服务节点所对应的业务数据进行聚合的数据聚合方式。

可选的,该存储介质存储的计算机可执行指令信息在被处理器执行时,还可以执行如下步骤:

接收到针对目标业务的业务请求时,生成目标业务所对应的唯一编码id。

可选的,该存储介质存储的计算机可执行指令信息在被处理器执行时,还可以执行如下步骤:

在目标业务的处理过程中,将目标业务的id通过各服务节点所对应的业务处理线程的线程局部变量和各服务节点之间的网路通信协议在调用链路中传递。

可选的,该存储介质存储的计算机可执行指令信息在被处理器执行时,将各服务节点所对应的业务数据存储至区块链中之后,方法还包括:

接收区块链返回的哈希值;其中,哈希值用于从区块链中读取目标业务所对应的数据;

建立并存储id与哈希值的映射关系。

可选的,该存储介质存储的计算机可执行指令信息在被处理器执行时,还可执行如下步骤:

将目标业务的id与各服务节点所对应的业务数据关联的存储至区块链。

本说明书实施例提供的该存储介质存储的计算机可执行指令信息在被处理器执行时,预先通过注解的方式在调用链路的各服务节点声明目标业务在该服务节点需要进行上链的业务数据,这样,在目标业务的处理过程中,在相应的服务节点,可以自动的获取通过注解的方式声明的业务数据,并上传至区块链进行存储;避免了通过人工方式从调用链路的各个服务节点收集需要上链的数据,数据的收集简单方便,在数据上链过程中不需要人工参与,同时简化了业务数据上链的操作流程,使得业务数据上链存证的操作简单方便。

一步地,基于上述图6至图8所示的方法,本说明书实施例还提供了一种存储介质,用于存储计算机可执行指令信息,一种具体的实施例中,该存储介质可以为u盘、光盘、硬盘等,该存储介质存储的计算机可执行指令信息在被处理器执行时,能实现以下流程:

在对业务数据进行取证时,根据预先标定的注解确定需要取证的业务参数和业务参数所对应的目标业务的id;其中,注解用于指示获取需要取证的业务参数和对应的id;

根据id确定需要取证的业务参数所对应的哈希值;

基于哈希值从区块链中读取业务参数所对应的业务数据。

可选的,该存储介质存储的计算机可执行指令信息在被处理器执行时,还可以执行如下步骤:

从业务系统获取业务参数所对应的业务数据;

基于从区块链中读取的业务数据和从业务系统获取的业务数据对业务参数所对应的数据进行校验。

可选的,该存储介质存储的计算机可执行指令信息在被处理器执行时,基于哈希值从区块链中读取目标业务所对应的业务数据之前,还可以执行如下步骤:

判断区块链中是否存在哈希值所对应的业务数据。

本说明书实施例提供的该存储介质存储的计算机可执行指令信息在被处理器执行时,预先通过注解的方式在调用链路的各服务节点声明目标业务在该服务节点需要进行取证的业务参数,这样,在进行业务数据的取证时,可以自动的确定需要取证的业务参数以及相应的业务id,从而可以基于该业务参数和id进行业务数据的取证以及校验;避免了通过人工方式从输入需要取证的业务参数,简化了业务数据下链的操作流程,方便用户从区块链进行业务数据的取证。

在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(programmablelogicdevice,pld)(例如现场可编程门阵列(fieldprogrammablegatearray,fpga))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字服务节点“集成”在一片pld上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logiccompiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(hardwaredescriptionlanguage,hdl),而hdl也并非仅有一种,而是有许多种,如abel(advancedbooleanexpressionlanguage)、ahdl(alterahardwaredescriptionlanguage)、confluence、cupl(cornelluniversityprogramminglanguage)、hdcal、jhdl(javahardwaredescriptionlanguage)、lava、lola、myhdl、palasm、rhdl(rubyhardwaredescriptionlanguage)等,目前最普遍使用的是vhdl(very-high-speedintegratedcircuithardwaredescriptionlanguage)与verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。

控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(applicationspecificintegratedcircuit,asic)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:arc625d、atmelat91sam、microchippic18f26k20以及siliconelabsc8051f320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。

上述实施例阐明的服务节点、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

本领域内的技术人员应明白,本申请的实施例可提供为方法、服务节点、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本说明书实施例的方法、设备(服务节点)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令信息实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令信息到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令信息产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令信息也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令信息产生包括指令信息装置的制造品,该指令信息装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令信息也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令信息提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令信息、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本申请的实施例可提供为方法、服务节点或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请可以在由计算机执行的计算机可执行指令信息的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于服务节点实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1