发明内容
本发明的主要目的为提供一种多线程任务分配方法、装置、设备及存储介质,旨在解决现有的分布式处理方法得到的处理结果分布在各个线程中,难以进行数据汇总的问题。
本发明提供了一种多线程任务分配方法,包括:
检测当前待执行任务的数量是否达到了预设数量;
若达到了所述预设数量,则获取各所述待执行任务的标签;
读取各所述待执行任务的标签中的标签信息;其中,所述标签信息包括不同类别的类别信息;
基于所述标签信息按照类别将各待执行任务模拟分配在各个线程中,得到各类别分别对应的模拟分配结果;
获取各所述模拟分配结果中各个线程的预测执行时间;
计算各个不同类别中,各所述线程的预测执行时间之间的离散度,并选取离散度最小的模拟分配结果对应的类别分配各所述待执行任务。
在一个实施例中,所述获取各所述模拟分配结果中各个线程的预测执行时间的步骤,包括:
为各个线程设置对应的消息队列;
基于各所述消息队列模拟接收对应线程的所述待执行任务,得到各个所述消息队列接收完成后的预测消息队列;
获取各所述预测消息队列的预测长度,并将所述消息队列的长度记为对应线程的预测执行时间。
在一个实施例中,所述计算各个不同类别中,各所述线程的预测执行时间之间的离散度,并选取离散度最小的模拟分配结果对应的类别分配各所述待执行任务的步骤之后,还包括:
获取所选择的不同类别中各个线程的预测执行时间,并根据各个预测执行时间建立时间集合;
根据公式ΔTmax=max(|Ti-Tj|)计算所述时间集合中最大时间差;其中,所述ΔTmax表示所述最大时间差,Ti和Tj分别表示所述时间集合中任意两个不同的线程所对应的预测执行时间,max(|Ti-Tj|)表示|Ti-Tj|计算得到的最大值;
判断所述最大时间差是否超过了时差预设值;
若超过了时差预设值,则将所述预测执行时间最短的线程在处理完毕对应的分配任务后,获取并处理所述预测执行时间最长的线程中的未处理的待执行任务。
在一个实施例中,所述基于所述标签信息按照类别将各待执行任务模拟分配在各个线程中,得到各类别分别对应的模拟分配结果的步骤,包括:
获取所述待执行任务标签中各类类别相对应的类别数值;
获取各所述类别数值之间的最大差值;
基于所述最大差值为各个线程等比例划分数值范围。
在一个实施例中,基于所述标签信息按照类别将各待执行任务模拟分配在各个线程中,得到各类别分别对应的模拟分配结果的步骤,包括:
根据所述不同类别为各个线程设定对应的任务类别;
将各所述待执行任务输入至预设的向量机中,得到对应固定维度的任务向量X=(x1,x2,…,xi,…,xn);
根据公式计算所述任务向量与每个任务类别对应的类别向量之间的匹配度;其中,Y为类别向量,Y=(y1,y2,...,yi,...,yn),si表示第i维数据所对应的权重,p为预设的参数;
根据所述匹配度将各个待执行任务模拟分配在对应的线程中。
在一个实施例中,所述计算各个不同类别中,各所述线程的预测执行时间之间的离散度,并选取离散度最小的模拟分配结果对应的类别分配各所述待执行任务的步骤之后,还包括:
监测各个线程的处理进度,并判断各线程中是否具有目标线程完成了分配的待执行任务的处理;
若具有所述目标线程,则将处理进度最慢的线程中未处理的待执行任务按照预设的规则再次进行分配;
将分配至其他线程的待执行任务迁移至其他线程中执行。
在一个实施例中,所述计算各个不同类别中,各所述线程的预测执行时间之间的离散度,并选取离散度最小的模拟分配结果对应的类别分配各所述待执行任务的步骤之后,还包括:
监测各个线程是否已经处理完毕各自分配后的待执行任务,并将处理完毕后的线程记为暂时线程;
获取所述暂时线程对应的待执行任务的处理结果;
在所述暂时线程中,基于对应不同类别的规则以及所述处理结果生成对应的文件。
本发明还提供了一种多线程任务分配装置,包括:
检测模块,用于检测当前待执行任务的数量是否达到了预设数量;
标签获取模块,用于若达到了所述预设数量,则获取各所述待执行任务的标签;
读取模块,用于读取各所述待执行任务的标签中的标签信息;其中,所述标签信息包括不同类别的类别信息;
分配模块,用于基于所述标签信息按照类别将各待执行任务模拟分配在各个线程中,得到各类别分别对应的模拟分配结果;
时间获取模块,用于获取各所述模拟分配结果中各个线程的预测执行时间;
计算模块,用于计算各个不同类别中,各所述线程的预测执行时间之间的离散度,并选取离散度最小的模拟分配结果对应的类别分配各所述待执行任务。
本发明还提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述方法的步骤。
本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的方法的步骤。
本发明的有益效果:根据各个待执行任务的标签中的标签信息,将各个待执行任务模拟分配在各个线程中,从而得到各个任务的模拟分配结果,然后根据各个预测执行时间计算离散度,从而选取到离散度最小的不同类别分配待执行任务,从而在保证处理效率的同时,还可以解决现有的分布式处理方法得到的处理结果分布在各个线程中,难以进行数据汇总的问题。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明,本发明实施例中所有方向性指示(诸如上、下、左、右、前、后等)仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变,所述的连接可以是直接连接,也可以是间接连接。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
另外,在本发明中如涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
参照图1,本发明提出一种多线程任务分配方法,包括:
S1:检测当前待执行任务的数量是否达到了预设数量;
S2:若达到了所述预设数量,则获取各所述待执行任务的标签;
S3:读取各所述待执行任务的标签中的标签信息;其中,所述标签信息包括不同类别的类别信息;
S4:基于所述标签信息按照类别将各待执行任务模拟分配在各个线程中,得到各类别分别对应的模拟分配结果;
S5:获取各所述模拟分配结果中各个线程的预测执行时间;
S6:计算各个不同类别中,各所述线程的预测执行时间之间的离散度,并选取离散度最小的模拟分配结果对应的类别分配各所述待执行任务。
如上述步骤S1所述,检测当前待执行任务的数量是否达到了预设数量。其中,检测的方式可以是设置任务监控脚本,检测当前执行任务的数量,预设数量为事先设定的数值,当小于该数值时,可以不用进行分配,可以将其分配至单一线程或者少数几个线程。当大于该预设数量时,为了提高平台对数据的处理速度,可以对其进行分配处理。若不进行分配,而是采取任意分配的处理,则可能会发生以下情况,其中一个线程在处理好A任务后,需要将处理结果发送给第一平台,处理好B任务时需要将处理结果发送给第二平台,导致每次发送前都需要去检测各个待执行任务的发送平台,较为繁琐,浪费各个线程的计算空间。
如上述步骤S2所述,若达到了所述预设数量,则获取各所述待执行任务的标签。其中,当当前待执行任务的数量达到了预设数量时,可以获取各个待执行任务的标签,各个待执行任务在分配时,会有对应的标签以便于任务的执行,因此其中也会有各个任务的种类,处理方式等信息,各个任务会携带有对应的标签,因此,可以从各个待执行任务中获取到对应的标签。
如上述步骤S3所述,读取各所述待执行任务的标签中的标签信息。其中,读取的方式各个线程中会预设有对应的方式,可以基于此进行获取,具体地,各个线程为了可以处理好对应的待执行任务,需要获取到各个待执行任务的执行方式,以便于执行对应的执行任务,即各个线程仍需要获取到各个待执行任务的标签。
如上述步骤S4所述,基于所述标签信息按照类别将各待执行任务模拟分配在各个线程中,得到各类别分别对应的模拟分配结果。由于不确定各类待执行任务的数目,因此只能在平台中设置多种分类方法,即各种不同类别,然后按照各个分配方案以此将各个任务进行模拟分配,得到各个分配方案所对应的模拟分配结果。例如标签信息中含有的类别信息为公司名称,任务名称,以及任务时间,则多个不同类别可以是基于公司名称进行划分的方案,可以是基于不同任务名称划分的不同类别,以及任务时间划分的不同类别,即对不同的类别设置对应的不同类别。
如上述步骤S5所述,获取各所述模拟分配结果中各个线程的预测执行时间。其中该预测执行时间可以是根据各个线程中所分配到的任务进行估算,也可以根据各个待执行任务的预计执行时间进行累加,得到对应的预测执行时间。
如上述步骤S6所述,计算各个不同类别中,各所述线程的预测执行时间之间的离散度,并选取离散度最小的模拟分配结果对应的类别分配各所述待执行任务。其中,计算离散度的方式可以是通过计算各个线程的预测执行时间的方差,也可以直接以预测时间最长的时间减去预测时间最短的时间,作为离散度。由于各个不同类别都是基于类别进行设定的分配方案,因此各个线程得到的处理结果为相对应类别的处理结果,无需对数据再进行识别,汇总,可以直接根据处理结果进行数据汇总,从而节省了汇总的时间。
在一个实施例中,所述获取各所述模拟分配结果中各个线程的预测执行时间的步骤S5,包括:
S501:为各个线程设置对应的消息队列;
S502:基于各所述消息队列模拟接收对应线程的所述待执行任务,得到各个所述消息队列接收完成后的预测消息队列;
S503:获取各所述预测消息队列的预测长度,并将所述消息队列的长度记为对应线程的预测执行时间。
实现了对各个预测执行时间的获取。
如上述步骤S501-S502所述,为每个不同类别中各个线程设置对应的消息队列,其中,消息队列用于对各个待执行任务进行排序,各个待执行任务按照再消息队列中的顺序依次在对应的线程中执行。因此可以为各个线程设置对应的消息队列,然后通过消息队列模型接收各个不同类别中所分配的待执行任务。
如上述步骤S503所述,获取各所述预测消息队列的预测长度,并将所述消息队列的长度记为对应线程的预测执行时间。本实施例中,可以直接将预测消息队列的长度记为对应线程的预测执行时间,由于消息队列越长,其所对应的待执行任务也就越多,因此,可以以预测消息队列的长度作为对应线程的预测执行时间。
在一个实施例中,所述计算各个所述不同类别中,各所述线程的预测执行时间之间的离散度,并选取离散度最小的不同类别分配各所述待执行任务的步骤S6之后,还包括:
S701:获取所选择的不同类别中各个线程的预测执行时间,并根据各个预测执行时间建立时间集合;
S702:根据公式ΔTmax=max(|Ti-Tj|)计算所述时间集合中最大时间差;其中,所述ΔTmax表示所述最大时间差,Ti和Tj分别表示所述时间集合中任意两个不同的线程所对应的预测执行时间,max(|Ti-Tj|)表示|Ti-Tj|计算得到的最大值;
S703:判断所述最大时间差是否超过了时差预设值;
S704:若超过了时差预设值,则将所述预测执行时间最短的线程在处理完毕对应的分配任务后,获取并处理所述预测执行时间最长的线程中的未处理的待执行任务。
实现了对待执行任务的二次分配。
如上述步骤S701所述,获取所选择的不同类别中各个线程的预测执行时间,并根据各个预测执行时间建立时间集合。其中预测执行时间前述已经获取,故而此处只需要将其进行调用并建立对应的时间集合即可。
如上述步骤S702所述,基于该公式ΔTmax=max(|Ti-Tj|)可以计算得到时间集合中最大时间差,需要说明的是,在计算最大时间差的同时,也可以将得到最大时间差的Ti和Tj进行标记,以便于后续对对应的两个线程进行再分配处理。
如上述步骤S703-S704所述,在判断最大时间差以及超过了时差预设值时,则可以将处理时间集合中最短的线程,在处理完毕对应的分配任务后获取并处理所述时间集合中时间最长的线程中的未处理的待执行任务进行处理,以帮助对应的预测执行时间最长的线程完成待执行任务的处理,使平台可以更快的对待执行任务进行处理,本实施例中,由于预测执行时间最短的线程已经处理好对应的执行任务,故而在帮助预测执行时间最长的线程执行未完成的待执行任务后,其对应的处理结果可以发送给对应预测执行时间最长的线程所对应的平台,也不需要增加该线程去检测各个待执行任务的发送平台。
在一个实施例中,所述基于所述标签信息按照类别将各待执行任务模拟分配在各个线程中,得到各类别分别对应的模拟分配结果的步骤S4,包括:
S401:获取所述待执行任务标签中各类类别相对应的类别数值;
S402:获取各所述类别数值之间的最大差值;
S403:基于所述最大差值为各个线程等比例划分数值范围。
实现了对待执行任务的分配。
如上述步骤S401所述,获取不同类别中所对应的分类类别,各个不同类别分配的原则是基于对应的分类类别,例如以主题进行分类,或者以时间、处理人等方式进行分类。因此可以基于对应的不同类别获取到对应的分类类别。获取所述待执行任务标签中各类类别相对应的类别数值。由于分类类别可能事先未划定对应的数值范围,或者划定的数值范围过大,导致各个线程中有部分线程的所接收到的待执行任务数量较少。因此可以根据对应的标签中的类别数值来划定,其中类别数值是通过将标签中对应该分类类别的表示进行数字化表示,即得到对应的类别数值。当然,在一些分类类别中,其分类类别的表示即为数字,则不需要进行处理(也可以进行归一化处理,使数据进行浓缩),直接以该数字作为对应的类别数值。
如上述步骤S403所述,获取类别数值之间的最大差值。即将最大的类别数值减去最小的类别数值即可。
如上述步骤S404所述,基于所述最大差值为各个线程等比例划分数值范围,设定的方式可以是根据线程的数目,然后将最大差值除以线程的数目的值作为各个线程的范围差,根据最小的类别数值作为第一个线程的起点,依次加上范围差设定各个线程的数值范围。
在另一个实施例中,基于所述标签信息按照类别将各待执行任务模拟分配在各个线程中,得到各类别分别对应的模拟分配结果的步骤S4,包括:
S411:根据所述不同类别为各个线程设定对应的任务类别;
S412:将各所述待执行任务输入至预设的向量机中,得到对应固定维度的任务向量X=(x1,x2,…,xi,…,xn);
S413:根据公式计算所述任务向量与每个任务类别对应的类别向量之间的匹配度;其中,Y为类别向量,Y=(y1,y2,...,yi,...,yn),si表示第i维数据所对应的权重,p为预设的参数;
S414:根据所述匹配度将各个待执行任务模拟分配在对应的线程中。
实现了对待执行任务的分配。
如上述步骤S411所述,可以根据不同类别为各个线程设定对应的任务类别。即为各个线程设定类别属性,例如,将A线程设置为处理对账业务,将B线程设置为清算任务。由此可以为各个线程设定对应的任务类别。
如上述步骤S412所述,将其输入至预设的向量机中,将其输入至预设的向量机中,例如为SVM,其根据对应的不同的待执行任务以及对应的任务向量训练而成,即得到对应固定维度的任务向量。
如上述步骤S413所述,根据公式计算所述任务向量与每个任务类别对应的类别向量之间的匹配度。需要说明的是,向量中的yi与xi对应的是同一属性,当然每个属性的权重占比也应当是不同的,因此引入了参数si,其中参数si是通过实现训练得到的,根据i的不同,其参数si的值也不同,需要解释的是i与参数si之间并没有函数对应关系,参数si与第i个属性相关,例如对于该任务类别来说,其中一个属性的相关,则参数si也会对应大一些。
如上述步骤S414所述,然后根据各个待执行任务的匹配度将该待执行任务模拟分配在对应的线程中。
在一个实施例中,所述计算各个不同类别中,各所述线程的预测执行时间之间的离散度,并选取离散度最小的模拟分配结果对应的类别分配各所述待执行任务的步骤S6之后,还包括:
S711:监测各个线程的处理进度,并判断各线程中是否具有目标线程完成了分配的待执行任务的处理;
S712:若具有所述目标线程,则将处理进度最慢的线程中未处理的待执行任务按照预设的规则再次进行分配;
S713:将分配至其他线程的待执行任务迁移至其他线程中执行。
如上述步骤S711所述,监测各个线程的处理进度,并判断各线程中是否具有目标线程完成了分配的待执行任务的处理。其中,监测的方式可以是通过设置对应的脚本进行监测,例如当前的监测脚本为Jmeter脚本,以此得出是否具有目标线程完成了分配的待执行任务的处理。
如上述步骤S712所述,若具有目标线程,则将处理进度最慢的线程按照预设的规则再次进行分配,其中分配的规则为将当前所具有待执行任务进行进一步的细化,例如,当前的目标线程的处理范围为0~9,则可以分为0~3,3~6以及6~9,将其中两个范围内的待执行任务模拟分配给其他线程执行。
如上述步骤S713所述,将分配至其他线程的待执行任务迁移至其他线程中执行,从而完成对待执行任务的再次分配。应当理解的是,该待执行任务迁移的其他线程优选为临近的其他线程,其实际上是为各个线程中的范围进行了重新划分。
在一个实施例中,所述计算各个不同类别中,各所述线程的预测执行时间之间的离散度,并选取离散度最小的模拟分配结果对应的类别分配各所述待执行任务的步骤S6之后,还包括:
S721:监测各个线程是否已经处理完毕各自分配后的待执行任务,并将处理完毕后的线程记为暂时线程;
S722:获取所述暂时线程对对应的待执行任务的处理结果;
S723:在所述暂时线程中,基于对应不同类别的规则以及所述处理结果生成对应的文件。
实现了对数据的汇总。
如上述步骤S721所述,监测各个线程是否已经处理完毕对应的待执行任务,监测的方式仍可以通过Jmeter脚本进行监测,将处理完毕后的线程记为暂时线程。
如上述步骤S722所述,获取所述暂时线程对对应的待执行任务的处理结果,各个线程的处理结果会汇总到对应各个线程所对应的存储位置处,因此从对应的存储位置处即可获取处理结果。
如上述步骤S723所述,在所述暂时线程中,基于对应不同类别的规则以及所述处理结果生成对应的文件。通过多线程生成文件,使对应的平台可以实时获取到处理进度,以及部分处理结果。
参照图2,本发明还提供了一种多线程任务分配装置,包括:
检测模块10,用于检测当前待执行任务的数量是否达到了预设数量;
标签获取模块20,用于若达到了所述预设数量,则获取各所述待执行任务的标签;
读取模块30,用于读取各所述待执行任务的标签中的标签信息;其中,所述标签信息包括不同类别的类别信息;
分配模块40,用于基于所述标签信息按照类别将各待执行任务模拟分配在各个线程中,得到各类别分别对应的模拟分配结果;
时间获取模块50,用于获取各所述模拟分配结果中各个线程的预测执行时间;
计算模块60,用于计算各个不同类别中,各所述线程的预测执行时间之间的离散度,并选取离散度最小的模拟分配结果对应的类别分配各所述待执行任务。
在一个实施例中,时间获取模块50,包括:
消息队列设置子模块,用于为各个线程设置对应的消息队列;
任务接收子模块,用于基于各所述消息队列模拟接收对应线程的所述待执行任务,得到各个所述消息队列接收完成后的预测消息队列;
预测长度获取子模块,用于获取各所述预测消息队列的预测长度,并将所述消息队列的长度记为对应线程的预测执行时间。
在一个实施例中,多线程任务分配装置,还包括:
预测执行时间获取模块,用于获取所选择的不同类别中各个线程的预测执行时间,并根据各个预测执行时间建立时间集合;
时间差计算模块,用于根据公式ΔTmax=max(|Ti-Tj|)计算所述时间集合中最大时间差;其中,所述ΔTmax表示所述最大时间差,Ti和Tj分别表示所述时间集合中任意两个不同的线程所对应的预测执行时间,max(|Ti-Tj|)表示|Ti-Tj|计算得到的最大值;
时间差判断模块,用于判断所述最大时间差是否超过了时差预设值;
待执行任务获取模块,用于若超过了时差预设值,则将所述预测执行时间最短的线程在处理完毕对应的分配任务后,获取并处理所述预测执行时间最长的线程中的未处理的待执行任务。
在一个实施例中,分配模块40,包括:
分类类别获取子模块,用于
类别数值获取子模块,用于获取所述待执行任务标签中各类类别相对应的类别数值;
最大差值获取子模块,用于获取各所述类别数值之间的最大差值;
数值范围设定子模块,用于基于所述最大差值为各个线程等比例划分数值范围。
在一个实施例中,分配模块40,包括:
任务类别设定子模块,用于根据所述不同类别为各个线程设定对应的任务类别;
任务输入子模块,用于将各所述待执行任务输入至预设的向量机中,得到对应固定维度的任务向量X=(x1,x2,…,xi,…,xn);
匹配度计算子模块,用于根据公式 计算所述任务向量与每个任务类别对应的类别向量之间的匹配度;其中,Y为类别向量,Y=(y1,y2,...,yi,...,yn),si表示第i维数据所对应的权重,p为预设的参数;
模拟分配子模块,用于根据所述匹配度将各个待执行任务模拟分配在对应的线程中。
在一个实施例中,多线程任务分配装置,还包括:
处理进度监测模块,用于监测各个线程的处理进度,并判断各线程中是否具有目标线程完成了分配的待执行任务的处理;
再次分配模块,用于若具有所述目标线程,则将处理进度最慢的线程中未处理的待执行任务按照预设的规则再次进行分配;
迁移模块,用于将分配至其他线程的待执行任务迁移至其他线程中执行。
在一个实施例中,多线程任务分配装置,还包括:
待执行任务监测模块,用于监测各个线程是否已经处理完毕各自分配后的待执行任务,并将处理完毕后的线程记为暂时线程;
处理结果获取模块,用于获取所述暂时线程对应的待执行任务的处理结果;
文件生成模块,用于在所述暂时线程中,基于对应不同类别的规则以及所述处理结果生成对应的文件。
本发明的有益效果:根据各个待执行任务的标签中的标签信息,将各个待执行任务模拟分配在各个线程中,从而得到各个任务的模拟分配结果,然后根据各个预测执行时间计算离散度,从而选取到离散度最小的不同类别分配待执行任务,从而在保证处理效率的同时,还可以解决现有的分布式处理方法得到的处理结果分布在各个线程中,难以进行数据汇总的问题。
参照图3,本申请实施例中还提供一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储各种不同类别等。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时可以实现上述任一实施例所述的多线程任务分配方法。
本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定。
本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时可以实现上述任一实施例所述的多线程任务分配方法。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储与一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM一多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双速据率SDRAM(SSRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
区块链是分配式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
区块链底层平台可以包括用户管理、基础服务、智能合约以及运营监控等处理模块。其中,用户管理模块负责所有区块链参与者的身份信息管理,包括维护公私钥生成(账户管理)、密钥管理以及用户真实身份和区块链地址对应关系维护(权限管理)等,并且在授权的情况下,监管和审计某些真实身份的交易情况,提供风险控制的规则配置(风控审计);基础服务模块部署在所有区块链节点设备上,用来验证业务请求的有效性,并对有效请求完成共识后记录到存储上,对于一个新的业务请求,基础服务先对接口适配解析和鉴权处理(接口适配),然后通过共识算法将业务信息加密(共识管理),在加密之后完整一致的传输至共享账本上(网络通信),并进行记录存储;智能合约模块负责合约的注册发行以及合约触发和合约执行,开发人员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑,同时还提供对合约升级注销的功能;运营监控模块主要负责产品发布过程中的部署、配置的修改、合约设置、云适配以及产品运行中的实时状态的可视化输出,例如:告警、监控网络情况、监控节点设备健康状态等。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。