基于可信执行环境的操作记录存储方法、装置及设备与流程

文档序号:19156545发布日期:2019-11-16 00:52阅读:146来源:国知局
基于可信执行环境的操作记录存储方法、装置及设备与流程

本说明书实施例涉及信息技术领域,尤其涉及基于可信执行环境的操作记录存储方法、装置及设备。



背景技术:

随着技术发展,数据共享变的越来越常见。具体而言,多个机构之间通过平台共享某种同类型的应用数据,任一机构可以使用在平台中的应用数据,在平台中进行诸如数据统计、数据分类或者机器学习等等行为。

在这个过程中,平台中所保存的数据不是完全免费的。例如,a用户提供大量数据,其希望通过提供数据来收取服务费用。由于实际上对于应用数据的操作都是在平台中进行,b用户在使用a用户的数据时,平台可能会和b用户联合起来欺诈a用户,例如,在平台中,每次b使用完a所提供的数据后,平台进行数据回滚,消灭b用户所使用过的痕迹。

基于此,需要一种不可篡改的操作记录存储方案。



技术实现要素:

本申请实施例的目的是提供一种不可篡改的操作记录存储方案。

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

一方面,本说明书实施例提供一种基于可信执行环境的操作记录存储方法,应用于应用服务端中,所述方法包括:

接收第一客户端所发送的操作指令,根据所述操作指令确定出所需使用的应用数据;

确定所述应用数据所对应的一个或者多个第二客户端;

根据所述应用数据,在可信执行环境tee中执行预设的操作代码,生成对于所述应用数据的操作日志;

在所述可信执行环境tee中,在执行所述操作代码前确定所述操作代码的已执行次数k,在执行所述操作代码时更改所述已执行次数为k+1;

生成包含所述操作日志和已执行次数k+1的操作记录,发送所述操作记录至数据库服务端、第一客户端和所述第二客户端,以便所述数据库服务端存储所述操作记录。

另一方面,本说明书实施例提供一种基于可信执行环境的操作记录存储方法,应用于数据库服务端中,所述方法包括:

接收应用服务端所发送的操作记录,确定所述操作记录的哈希值,其中,所述操作记录中包含操作日志和操作代码的已执行次数k+1,所述操作记录由应用服务端在可信执行环境tee中生成;

当达到预设的成块条件时,将所述操作记录写入块链式账本,生成包含数据块的哈希值和所述操作记录的第n个数据块,具体包括:

当n=1时,初始数据块的哈希值和块高基于预设方式给定;

当n>1时,根据待写入数据块中的各操作记录和第n-1个数据块的哈希值确定第n个数据块的哈希值,生成包含第n个数据块的哈希值和各操作记录的第n个数据块,其中,数据块的块高基于成块时间的先后顺序单调递增。

与一方面对应的,本说明书实施例提供一种基于可信执行环境的操作记录存储装置,应用于应用服务端中,所述装置包括:

接收模块,接收第一客户端所发送的操作指令,根据所述操作指令确定出所需使用的应用数据;

确定模块,确定所述应用数据所对应的一个或者多个第二客户端;

tee执行模块,根据所述应用数据,在可信执行环境tee中执行预设的操作代码,生成对于所述应用数据的操作日志;

tee计数模块,在所述可信执行环境tee中,在执行所述操作代码前确定所述操作代码的已执行次数k,在执行所述操作代码时更改所述已执行次数为k+1;

发送模块,生成包含所述操作日志和已执行次数k+1的操作记录,发送所述操作记录至数据库服务端、第一客户端和所述第二客户端,以便所述数据库服务端存储所述操作记录。

与另一方面对应的,本说明书实施例提供一种基于可信执行环境的操作记录存储装置,应用于数据库服务端中,所述装置包括:

接收模块,接收应用服务端所发送的操作记录,确定所述操作记录的哈希值,其中,所述操作记录中包含操作日志和操作代码的已执行次数k+1,所述操作记录由应用服务端在可信执行环境tee中生成;

生成模块,当达到预设的成块条件时,将所述操作记录写入块链式账本,生成包含数据块的哈希值和所述操作记录的第n个数据块,具体包括:

当n=1时,初始数据块的哈希值和块高基于预设方式给定;

当n>1时,根据待写入数据块中的各操作记录和第n-1个数据块的哈希值确定第n个数据块的哈希值,生成包含第n个数据块的哈希值和各操作记录的第n个数据块,其中,数据块的块高基于成块时间的先后顺序单调递增。

通过本说明书实施例所提供的方案,用户在平台上进行数据操作时,平台通过在可信执行环境(trustedexecutionenvironment,tee)中执行预设代码对用户所选择的数据进行操作,生成相应的操作日志,并且,在可信执行环境中执行预设代码时进行计数,每运行一次代码计数加1,并且将操作日志和计数结果捆绑,生成操作记录写入数据库服务端中的块链式账本中,在块链式账本中形成不可抵赖的计数连续的证据,任一用户可以随时在账本中查证自己的数据被使用过多少次,以及使用方是谁,实现对于数据使用的相关记录的不可篡改。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书实施例。

此外,本说明书实施例中的任一实施例并不需要达到上述的全部效果。

附图说明

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

图1为本说明书实施例所涉及的系统架构示意图;

图2是本说明书实施例提供的一种基于可信执行环境的操作记录存储方法的流程示意图;

图3为本说明书实施例所提供的另一方面的一种操作记录存储方法的流程示意图;

图4是本说明书实施例提供的应用于应用服务端中的一种操作记录存储装置的结构示意图;

图5为本说明书实施例所提供的一种操作记录存储装置的结构示意图;

图6是用于配置本说明书实施例方法的一种设备的结构示意图。

具体实施方式

为了使本领域技术人员更好地理解本说明书实施例中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行详细地描述,显然,所描述的实施例仅仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于保护的范围。

随着大数据应用的深入,数据的广度越来越受到重视,由此,形成一种多用户之间通过共享平台(即应用服务端)的数据共享模式。如图1所示,图1为本说明书实施例所涉及的系统架构示意图。多名用户(可以是个人或者机构组织)将数据上传平台,形成数据池。数据池中的数据可以是加密的或者是公开的,每条数据在平台中有明确的所有者。

平台可以提供一种或者多种应用或者代码供任一用户执行,任一用户可以从数据池中调用自身所需使用的数据在平台上进行相应的统计、分类或者模型训练等等。代码也可以是由用户维护,并提供给平台进行保存以及执行的。

由于数据的使用在平台上进行,因此平台可以监管用户的行为,确保不会出现数据盗取,以及,还可以根据数据池之间的数据调用情形,来确定数据提供方所应收取的收益。例如,用户a和用户b达成协议,可以互相免费使用对方数据若干次,超出部分需要收费等等。为了避免某个用户和平台串通,平台需要提供一种不可篡改且可以随时查证的操作记录。

以下结合附图,详细说明本说明书各实施例提供的技术方案。如图2所示,图2是本说明书实施例提供的一种基于可信执行环境的操作记录存储方法的流程示意图,该流程具体包括如下步骤:

s201,接收第一客户端所发送的操作指令,根据所述操作指令确定出所需使用的应用数据。

如前所述,第一客户端可以通过登录应用服务端,在应用服务端上进行发送相应的操作指令,或者,在第一客户端中直接发送操作指令至应用服务端。

所述操作指令具体而言,包括从数据池中选定本次操作需要使用的应用数据,以及,选定操作在应用服务端中所需使用的应用程序或者操作代码。

需要说明的是,该段应用程序或者代码可以是应用服务端所提供的,也可以是用户所提供但是保存于应用服务端之中的。例如,用户所提供的一段机器学习训练模型的代码。

该应用程序或者代码虽然保存于应用服务端中,但是该应用程序或者代码是公开所见的,用户可以了解该代码的用途以及明文,进而保证应用服务端的公正性。

s203,确定所述应用数据所对应的一个或者多个第二客户端。

在确定了需要使用的应用数据后,应用服务端即可以确定本次所使用的应用数据所涉及的其它用户方。具体而言,可以在每条数据中包含有提供方的用户标识,从而根据该用户标识确定出第二客户端。

容易理解,被调用的应用数据可能来自一个或者用户,因此,第二客户端也可以是一个或者多个。如图1中所示,a在使用数据池中的数据时可能会同时使用b和c的数据,因此,此时的第二客户端即包括b和c的客户端。

s205,根据所述应用数据,在可信执行环境tee中执行预设的操作代码,生成对于所述应用数据的操作日志。

可信执行环境teetee可以起到硬件中的黑箱作用,在tee中执行的代码和数据操作系统层都无法偷窥,只有代码中预先定义的接口才能对其进行操作。换言之,每次代码通过接口被执行时,应用服务端也总是可以知道并生成相应的操作日志。

可信执行环境是基于cpu硬件的安全扩展,且与外部完全隔离的可信执行环境。tee最早是由globalplatform提出的概念,用于解决移动设备上资源的安全隔离,平行于操作系统为应用程序提供可信安全的执行环境。arm的trustzone技术最早实现了真正商用的tee技术。

伴随着互联网的高速发展,安全的需求越来越高,不仅限于移动设备,云端设备,数据中心都对tee提出了更多的需求。tee的概念也得到了高速的发展和扩充。现在所说的tee相比与最初提出的概念已经是更加广义的tee。例如,服务器芯片厂商intel,amd等都先后推出了硬件辅助的tee并丰富了tee的概念和特性,在工业界得到了广泛的认可。现在提起的tee通常更多指这类硬件辅助的tee技术。不同于移动端,云端访问需要远程访问,终端用户对硬件平台不可见,因此使用tee的第一步就是要确认tee的真实可信。因此现在的tee技术都引入了远程证明机制,由硬件厂商(主要是cpu厂商)背书并通过数字签名技术确保用户对tee状态可验证。换言之,在tee中执行的结果可以得到硬件厂商的数字签名。

同时仅仅是安全的资源隔离也无法满足的安全需求,进一步的数据隐私保护也被提出。包括intelsgx,amdsev在内的商用tee也都提供了内存加密技术,将可信硬件限定在cpu内部,总线和内存的数据均是密文防止恶意用户进行窥探。例如,英特尔的软件保护扩展(sgx)等tee技术隔离了代码执行、远程证明、安全配置、数据的安全存储以及用于执行代码的可信路径。在tee中运行的应用程序受到安全保护,几乎不可能被第三方访问。

以intelsgx技术为例,sgx提供了围圈(enclave,也称为飞地),即内存中一个加密的可信执行区域,由cpu保护数据不被窃取。以服务端采用支持sgx的cpu为例,利用新增的处理器指令,在内存中可以分配一部分区域epc(enclavepagecache,围圈页面缓存或飞地页面缓存),通过cpu内的加密引擎mee(memoryencryptionengine)对其中的数据进行加密。epc中加密的内容只有进入cpu后才会被解密成明文。因此,在sgx中,用户可以不信任操作系统、vmm(virtualmachinemonitor,虚拟机监控器)、甚至bios(basicinputoutputsystem,基本输入输出系统),只需要信任cpu便能确保代码的执行。

在本说明书实施例中,即以获取得到的所述应用数据作为输入,执行预设的操作代码即可。

生成的操作日志中可以包括发起本次调用的第一客户端的用户标识、本次调用所使用的数据,以及所使用的数据的提供方(即第二客户端标识);进一步地,还可以包括本次执行所产生的结果、本次执行代码的起始时间、结束时间等等。

s207,在所述可信执行环境tee中,在执行所述操作代码前确定所述操作代码的已执行次数k,在执行所述操作代码时更改所述已执行次数为k+1。

如前所述,tee中执行代码时由硬件提供商提供保障。相应的,在本说明书实施例中,每段独立的应用程序或者代码均有相应的计数,该计数表征了该代码的执行次数。每执行一次操作代码,该代码所对应的计数值加1。即,在应用服务端中存在多份可执行代码时,各代码的执行计数相互独立,

同样的,该计数值由tee进行维护,并提供真实性保障,换言之,该计数值由tee所对应的硬件提供商进行数字签名。

s209,生成包含所述操作日志和已执行次数k+1的操作记录,发送所述操作记录至数据库服务端、第一客户端和所述第二客户端,以便所述数据库服务端存储所述操作记录。

由于代码的执行和计数都是由tee保障真实性并进行数字签名,应用服务端也无法对产生的操作日志和计数值进行修改。

如前所述,每次执行代码都会产生一个加1的计数,从而可以知道,基于计数的连续性(即计数是一个连续的自然数序列),产生的操作记录中同样包含有连续的自然数序列。

应用服务端可以将产生的操作记录发送至数据库服务端进行存储,以及,还可以将操作记录分别返回至第一客户端和第二客户端,以便第一客户端或者第二客户端随时向数据库服务端发起查询或者验证。

如果第一客户端或者第二客户端发现,在操作记录序列中发生了包含某个计数的操作记录丢失(例如,操作记录序列的计数为10,11,13,跳过了12),就可以知道应用服务端在这个过程中存在问题:有一次操作记录没有被应用服务端所保存,而是产生了遗漏或者丢失。

在一种实施例中,用户所提供的数据还可以是加密过的加密应用数据。例如,使用用户自身的公钥进行加密(只有该用户的私钥才能进行解密,可以保障数据不会泄露),在这种方式下,应用服务端可以在tee中维护一张用户标识与私钥的关系对应表(即各用户的私钥不同),从而在有需要的情形下,获取该用户的私钥对其加密过的数据进行私钥解密,获取其中的应用数据。

进一步地,应用服务端可以通过tee提供一份统一的公钥私钥对,对于任一客户端所提供的数据均使用该公钥进行加密,而私钥仅由tee环境进行维护,即用户也不知道该私钥。换言之,任一客户端所对应的公钥和私钥相同,仅在tee环境中可以获取私钥,并对用户所提供的应用数据进行解密。在这种方式下,由于所有用户的公钥私钥对是统一的,降低了应用服务端的维护开销。

在一种实施例中,应用服务端将操作记录发送至数据库服务端之后,则可以收到由数据库服务端所返回的对应于该操作记录的哈希值。具体而言,该哈希值由数据库服务端基于预设算法生成,并可以包含数据库服务端所提供的数字签名,从而保证该哈希值是由数据库服务端所提供的,任一其它用户(包括应用服务端或者应用服务端所服务端的任一客户端)均可以凭借该哈希值向数据库服务端进行查询或者验证。

应用服务端在接收到哈希值之后,一方面可以将哈希值进行本地存储,例如建立该操作记录所包含的计数值与操作记录的哈希值之间的对应关系,并且写入索引。以及,还可以将哈希值转发至第一客户端和该操作记录所涉及的第二客户端,以便用户可以随时查询或者验证。

以共享学习的场景为例,如图1中所涉及的架构,a机构、b机构和c机构共同在应用服务端上进行风险模型训练,风险模型训练所使用的训练代码由a、b和c共同维护,任何一方都知晓代码的具体内容。同时,a、b和c分别提供若干包含用户数据的训练样本至应用服务端中。同时,为了数据保密,应用服务端通过tee维护公钥私钥对,并且使用公钥加密数据池中的数据,保障用户数据不会泄露。

a在每次模型训练时,均使用数据池中的数据(即需要使用b和c的训练样本),训练的方式即为在tee中以私钥解密数据池中的数据,以解密后的训练样本作为输入,在tee中执行前述的训练代码。训练代码每执行一次,计数加1,tee对计数结果进行数字签名,从而生成包含有执行方a、数据提供方b和c的操作日志,同时与对应的计数构建对应关系,生成包含有操作日志和计数的操作记录,并且发送操作记录至a、b和c的客户端以及数据库服务端。

作为一种共享训练的方式,在操作日志中还可以包含本次执行训练代码所得到的训练模型。

另一方面,本说明书实施例还提供一种基于可信执行环境的操作记录存储方法,应用于数据库服务端中,如图3所示,图3为本说明书实施例所提供的一种操作记录存储方法的流程示意图,所述方法包括:

s301,接收应用服务端所发送的操作记录,确定所述操作记录的哈希值,其中,所述操作记录中包含操作日志和操作代码的已执行次数k+1。

操作记录的具体内容在前文已经进行了说明,此处不再赘述。哈希值的具体算法可以由实际需要确定,例如分别是sha-1、sha-224、sha-256、sha-384或者sha-512等。

s303,当达到预设的成块条件时,将所述操作记录写入块链式账本,生成包含数据块的哈希值和所述操作记录的第n个数据块。

所述预设的成块条件包括:待存储的操作记录数量达到数量阈值,例如,每接收到一千条操作记录时,生成一个新数据块,将一千条操作记录写入块中;或者,距离上一次成块时刻的时间间隔达到时间阈值,例如,每隔5分钟,生成一个新数据块,将在这5分钟内接收到的操作记录写入块中。

在实际应用中,操作记录并不会特别频繁,针对每种代码的账本,可以每条操作记录创建一个数据块。

此处的n指的是数据块的序号,换言之,在本说明书实施例中,数据块是以块链的形式,基于成块时间的顺序先后排列,具有很强的时序特征。其中,数据块的块高基于成块时间的先后顺序单调递增。块高可以是序号,此时第n个数据块的块高即为n;块高也可以其它方式生成,例如,将数据块的成块时间对称加密转换为单调递增的大整型数据作为块高。

当n=1时,即此时的数据块为为初始数据块。初始数据块的哈希值和块高基于预设方式给定。例如,初始数据块中不包含操作记录,只包含用户标识、用户权限等等元数据,数据块的哈希值则为任一给定的哈希值,块高blknum=0;又例如,初始数据块的生成触发条件与其它数据块的触发条件一致,但是初始数据块的哈希值由对初始数据块中的所有内容取哈希确定。

当n>1时,由于前一数据块的内容和哈希值已经确定,则此时,可以基于前一数据块(即第n-1个数据块)的哈希值生成当前数据块(第n个数据块)的哈希值,例如,一种可行的方式为,确定每一条将要写入第n个块中的操作记录的哈希值,按照在块中的排列顺序,生成一个默克尔树,将默克尔树的根哈希值和前一数据块的哈希值拼接在一起,再次采用哈希算法,生成当前块的哈希值。又例如,还可以按照块中操作记录的顺序进行拼接并取哈希得到整体操作记录的哈希值,拼接前一数据块的哈希值和整体操作记录的哈希值,并对拼接得到的字串进行哈希运算,生成当前数据块的哈希值。

数据库服务端在对于操作记录存储成功以后,即可以得到对应的操作记录的哈希值以及所处的数据块的哈希值,并发送所述哈希值至应用服务端,应用服务端转发哈希值至客户端,或者,还可以直接发送所述哈希值至客户端,以便客户端并且可以基于该哈希值发起完整性验证。具体的验证方式即为在数据库中重新计算操作记录自身的哈希值以及所处的数据块的哈希值,与本地所保存的哈希值进行对比。

通过前述的数据块的生成方式,每一个数据块通过哈希值确定,数据块的哈希值由数据块中的操作记录的内容、顺序以及前一数据块的哈希值决定。用户可以随时基于数据块的哈希值发起验证,对于数据块中任何内容(包括对于数据块中操作记录内容或者顺序的修改)的修改都会造成在验证时计算得到的数据块的哈希值和数据块生成时的哈希值不一致,而导致验证失败,从而实现了中心化下的不可篡改。

由于操作记录中包含了连续的计数序列,在数据库服务端,针对每段操作代码,均可以设置一份对应的账本,从而账本中存储的是包含连续计数的操作记录,用户还可以随时针对该段代码的执行情形发起查询以及验证。

在对于块链式的账本进行验证时,一般而言,即指定一段数据块进行连续的完整性验证,或者从初始数据块开始进行连续的完整性验证。验证的方式即为获取前一数据块的哈希值,并采用与生成数据块的哈希值时的同样算法,根据自身的操作记录和前一数据块的哈希值,重新计算一遍自身数据块的哈希值,并与之前的数据块的哈希值进行对比即可。

通过本说明书实施例所提供的方案,用户在平台上进行数据操作时,平台通过在可信执行环境(trustedexecutionenvironment,tee)中执行预设代码对用户所选择的数据进行操作,生成相应的操作日志,并且,在可信执行环境中执行预设代码时进行计数,每运行一次代码计数加1,并且将操作日志和计数结果捆绑,写入数据库服务端中的块链式账本中,在块链式账本中形成不可抵赖的计数连续的证据,任一用户可以随时在账本中查证自己的数据被使用过多少次,以及使用方是谁,实现对于数据使用的相关记录的不可篡改。

与一方面对应的,本说明书实施例还提供一种基于可信执行环境的操作记录存储装置,应用于应用服务端中,如图4所示,图4是本说明书实施例提供的应用于应用服务端中的一种操作记录存储装置的结构示意图,包括:

接收模块401,接收第一客户端所发送的操作指令,根据所述操作指令确定出所需使用的应用数据;

确定模块403,确定所述应用数据所对应的一个或者多个第二客户端;

tee执行模块405,根据所述应用数据,在可信执行环境tee中执行预设的操作代码,生成对于所述应用数据的操作日志;

tee计数模块407,在所述可信执行环境tee中,在执行所述操作代码前确定所述操作代码的已执行次数k,在执行所述操作代码时更改所述已执行次数为k+1;

发送模块409,生成包含所述操作日志和已执行次数k+1的操作记录,发送所述操作记录至数据库服务端、第一客户端和所述第二客户端,以便所述数据库服务端存储所述操作记录。

进一步地,若所述应用数据为使用公钥加密过的加密应用数据,所述装置还包括tee解密模块411,在可信执行环境tee中,分别获取所述第二客户端的私钥,对所述第二客户端所对应的加密应用数据进行私钥解密,获取应用数据。

进一步地,所述接收模块401还用于,接收数据服务端所确定的所述操作记录的哈希值;所述发送模块还用于,将所述哈希值转发至所述、第一客户端和所述第二客户端。

进一步地,所述应用数据包括训练样本,所述操作代码包括针对所述训练样本的模型训练代码,所述操作日志中包括本次训练所得到的训练模型。

与另一方面对应的,本说明书实施例还提供一种基于可信执行环境的操作记录存储装置,如图5所示,图5为本说明书实施例所提供的一种操作记录存储装置的结构示意图,应用于数据库服务端中,所述装置包括:

接收模块501,接收应用服务端所发送的操作记录,确定所述操作记录的哈希值,其中,所述操作记录中包含操作日志和操作代码的已执行次数k+1,所述操作记录由应用服务端在可信执行环境tee中生成;

生成模块503,当达到预设的成块条件时,将所述操作记录写入块链式账本,生成包含数据块的哈希值和所述操作记录的第n个数据块,具体包括:

当n=1时,初始数据块的哈希值和块高基于预设方式给定;

当n>1时,根据待写入数据块中的各操作记录和第n-1个数据块的哈希值确定第n个数据块的哈希值,生成包含第n个数据块的哈希值和各操作记录的第n个数据块,其中,数据块的块高基于成块时间的先后顺序单调递增。

进一步地,所述装置还包括发送模块505,发送所述操作记录的哈希值至应用服务端。

进一步地,所述预设的成块条件包括:待存储的操作记录数量达到数量阈值;或者,距离上一次成块时刻的时间间隔达到时间阈值。

本说明书实施例还提供一种计算机设备,其至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现图2所示的操作记录存储方法。

本说明书实施例还提供一种计算机设备,其至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现图3所示的操作记录存储方法。

图6示出了本说明书实施例所提供的一种更为具体的计算设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。

处理器1010可以采用通用的cpu(centralprocessingunit,中央处理器)、微处理器、应用专用集成电路(applicationspecificintegratedcircuit,asic)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。

存储器1020可以采用rom(readonlymemory,只读存储器)、ram(randomaccessmemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。

输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。

通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如usb、网线等)实现通信,也可以通过无线方式(例如移动网络、wifi、蓝牙等)实现通信。

总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。

需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。

本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现图2所示的操作记录存储方法。

本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现图3所示的操作记录存储方法。

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

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书实施例可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书实施例各个实施例或者实施例的某些部分所述的方法。

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

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于方法实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的方法实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本说明书实施例方案时可以把各模块的功能在同一个或多个软件和/或硬件中实现。也可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述仅是本说明书实施例的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本说明书实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本说明书实施例的保护范围。

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