用于区块链系统的数据处理方法、装置和电子设备与流程

文档序号:20439203发布日期:2020-04-17 22:17阅读:123来源:国知局
用于区块链系统的数据处理方法、装置和电子设备与流程

本公开涉及一种用于区块链系统的数据处理方法、装置和电子设备。



背景技术:

通常情况下,区块链系统底层使用静态编译型语言,需要在编译时就将运行期间需要引用的包或库等全部加载打包至最终的可执行程序中,而并不能在区块链系统运行期间动态加载其他库文件,即无法在区块链系统运行期间动态加载外部功能。



技术实现要素:

本公开的一个方面提供了一种用于区块链系统的数据处理方法,包括:在区块链系统运行阶段,获取动态库的配置路径。其中,该动态库在区块链系统初始化阶段进行注册,该动态库用于实现至少一个密码算法。然后,基于所获取的配置路径加载动态库。接着,基于上述至少一个密码算法执行预定操作。

可选地,上述方法还包括:在区块链系统初始化阶段,通过调用第一接口将动态库存入区块链系统的配置文件中,以完成动态库在区块链系统中的注册。在此基础上,上述获取动态库的配置路径包括:获取动态库在区块链系统的配置文件中的路径信息。

可选地,上述基于所获取的配置路径加载动态库包括:通过调用第二接口基于配置路径在配置文件中查找动态库。如果查找到,则通过调用第三接口加载动态库中的至少一个密码算法。

可选地,上述区块链系统包括可插拔模块,该可插拔模块包括第一接口、第二接口和第三接口。上述方法还包括:每隔预定时间间隔确定所述可插拔模块是否更新。如果是,则获取更新后的可插拔模块的配置信息。基于更新后的可插拔模块的配置信息和动态库的配置路径,对动态库进行重新注册。

可选地,上述基于至少一个密码算法执行预定操作包括:基于至少一个密码算法中的任一密码算法,生成针对区块链网络中的任一区块链节点的密钥。其中,上述密钥包括如下至少一项:公钥和私钥。

可选地,上述基于至少一个密码算法执行预定操作包括如下至少一项:基于至少一个密码算法中的任一密码算法,对区块链系统产生的事务数据进行加密;基于至少一个密码算法中的任一密码算法,对区块链系统中已加密的事务数据进行解密;基于至少一个密码算法中的任一密码算法,对区块链系统产生的事务数据进行签名;基于至少一个密码算法中的任一密码算法,对区块链系统中已签名的事务数据进行验签。

可选地,上述至少一个密码算法包括如下至少一项:sm1国密算法、sm2国密算法、sm3国密算法、以及sm4国密算法。

可选地,上述方法还包括:在区块链系统运行阶段,基于动态库的配置路径在已注册的动态库中添加更新的密码算法。备选地或附加地,在区块链系统运行阶段,基于动态库的配置路径卸载动态库。

本公开的另一方面提供了一种用于区块链系统的数据处理装置,该装置包括:获取模块、加载模块和执行模块。获取模块用于在区块链系统运行阶段,获取动态库的配置路径。其中,该动态库在区块链系统初始化阶段进行注册,该动态库用于实现至少一个密码算法。加载模块用于基于所获取的配置路径加载动态库。执行模块用于基于上述至少一个密码算法执行预定操作。

本公开的另一方面提供了一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序。处理器执行计算机程序时用于实现:在区块链系统运行阶段,获取动态库的配置路径。其中,该动态库在区块链系统初始化阶段进行注册,该动态库用于实现至少一个密码算法。然后,基于所获取的配置路径加载动态库。接着,基于上述至少一个密码算法执行预定操作。

本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。

本公开的另一方面提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。

附图说明

为了更完整地理解本公开及其优势,现在将参考结合附图的以下描述,其中:

图1示意性示出了根据本公开实施例的用于区块链系统的数据处理方法、装置和电子设备的应用场景;

图2示意性示出了根据本公开实施例的用于区块链系统的数据处理方法的流程图;

图3示意性示出了根据本公开另一实施例的用于区块链系统的数据处理方法的流程图;

图4示意性示出了根据本公开实施例的区块链系统的示例架构图;

图5示意性示出了根据本公开实施例的用于区块链系统的数据处理装置的框图;以及

图6示意性示出了根据本公开实施例的电子设备的框图。

具体实施方式

以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。

在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。

在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。

在使用类似于“a、b和c等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有a、b和c中至少一个的系统”应包括但不限于单独具有a、单独具有b、单独具有c、具有a和b、具有a和c、具有b和c、和/或具有a、b、c的系统等)。在使用类似于“a、b或c等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有a、b或c中至少一个的系统”应包括但不限于单独具有a、单独具有b、单独具有c、具有a和b、具有a和c、具有b和c、和/或具有a、b、c的系统等)。

附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本公开的技术可以采取存储有指令的计算机可读存储介质上的计算机程序产品的形式,该计算机程序产品可供指令执行系统使用或者结合指令执行系统使用。

本公开的实施例提供了一种用于区块链系统的数据处理方法、装置和电子设备。该用于区块链系统的数据处理方法可以包括获取过程、加载过程和执行过程。获取过程在区块链系统运行阶段执行,获取动态库的配置路径。然后进行加载过程,基于所获取的配置路径加载动态库。其中,所加载的动态库是在区块链系统初始化阶段进行注册的,该动态库用于实现至少一个密码算法。接着进行执行过程,基于动态库中的至少一个密码算法在区块链系统中执行预定操作。

图1示意性示出了根据本公开实施例的用于区块链系统的数据处理方法、装置和电子设备的应用场景。需要注意的是,图1所示仅为可以应用本公开实施例的场景的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。

如图1所示,该应用场景示出了区块链网络(blockchainnetwork)100,该区块链网络100可以包括节点(node)101~106,节点101~106共同维护区块链(blockchain)110。

节点101~106可以是具有相同或不同计算能力的各种计算节点,例如可以是个人计算机、网络服务器、数据库服务器、智能手机等等,在此不做限定。节点101~106中任意两个节点之间都可进行点对点通信。区块链系统可以部署于各节点中,以使各节点按照一定规则执行区块链网络中的各项事务和操作。

区块链110是通过散列指针按时间顺序链接的区块(block)的分布式数据库。区块链的区块是按照时间顺序加入的,当满足预定条件时,区块链网络中的各节点允许当前节点创建区块并将该区块加入到区块链中,加入的区块作为该区块链上当前最新区块。在某一特定时刻,维护同一区块链的节点从区块链上获取的当前最新区块是相同的。

区块链技术,其目标是实现数据的分布式可靠存储。区块链具体实现时,数据在网络内多节点(即区块链节点)上采用增量式存储,通过安全散列算法(securehashalgorithm,sha)确保了入链数据的不可篡改,并且通过共识算法和网络传输协议实现了数据在各区块链节点上存储的一致性。区块链一般可以分为公有链(publicblockchain)和许可链(permissionedblockchain),其中许可链又可以根据数据维护方是否为单一个体(entity)分成联盟链(consortiumblockchain)和私有链(privateblockchain)。

应该理解,图1中的区块链网络的规模和类型、节点的数量、区块链的长度、区块的数量等仅仅是示意性的。根据实际需要,可以具有任意规模和类型的区块链网络、任意数量的节点、任意长度的区块链、任意数量的区块等,在此不做限制。

根据本公开实施例的用于区块链系统的数据处理方法和装置可以应用于任一区块链节点。通常情况下,区块链系统底层使用静态编译型语言,需要在编译时就将运行期间需要引用的包或库等全部加载打包至最终的可执行程序中,而并不能在区块链系统运行期间动态加载其他库文件,即无法在区块链系统运行期间动态加载外部功能。

根据本公开实施例,提供了一种用于区块链系统的数据处理方法,以至少部分地解决上述区块链系统运行期间无法动态加载外部功能的问题,下面结合图例对该方法进行说明。应注意,以下方法中各个步骤的序号仅作为该步骤的表示以便描述,而不应被看作表示该各个步骤的执行顺序。除非明确指出,否则该方法不需要完全按照所示顺序来执行。

图2示意性示出了根据本公开实施例的用于区块链系统的数据处理方法的流程图。

如图2所示,该用于区块链系统的数据处理方法可以包括如下操作s201~s203。

在操作s201,在区块链系统运行阶段,获取动态库的配置路径。

其中,动态库可以在区块链系统开始运行之间进行注册,例如,动态库在区块链系统初始化阶段进行注册。在其他实施例中,动态库也可以在其他阶段进行注册。动态库可以用于实现各种算法逻辑,例如,该动态库用于实现至少一个密码算法。

然后,在操作s202,基于所获取的配置路径加载动态库。

接着,在操作s203,基于上述至少一个密码算法执行预定操作。

上述操作s201~s203均可以在区块链系统运行过程中实施。

本领域技术人员可以理解,图2所示的方法在区块链系统的运行过程中,基于已注册的动态库的配置路径动态加载该动态库,以便能够利用该动态库所能实现的算法逻辑来执行相应的操作。实现了区块链系统运行过程中对于外部功能的动态加载,十分便捷高效。示例性地,动态库可以用于实现除区块链系统固有的密码算法之外的其他密码算法,则区块链系统通过动态加载动态库可以实现对于各种密码算法的兼容,而不限于自身固有的算法逻辑,该过程大大拓展了区块链系统的使用场景和功能等级。

图3示意性示出了根据本公开另一实施例的用于区块链系统的数据处理方法的流程图。

如图3所示,该用于区块链系统的数据处理方法可以包括如下操作s201-s204。其中,操作s201-s203在上文中已经详细说明,在此不再赘述。操作s204在操作s201之前执行。

在操作s204,在区块链系统初始化阶段,通过调用第一接口将动态库存入区块链系统的配置文件中,以完成动态库在区块链系统中的注册。

其中,第一接口用于实现动态库在区块链系统中的注册逻辑。

在此基础上,根据本公开的实施例,上述获取动态库的配置路径的过程可以包括:获取动态库在区块链系统的配置文件中的路径信息。

在本公开的一个实施例中,上述基于所获取的配置路径加载动态库的过程可以包括:通过调用第二接口基于配置路径在配置文件中查找动态库。如果查找到,则通过调用第三接口加载动态库中的至少一个密码算法。其中,第二接口用于实现针对已注册动态库的查找逻辑,第三接口用于实现针对动态库中的算法的调用逻辑。

示例性地,本公开实施例可以在区块链系统中配置包括可插拔模块。该可插拔模块可以提供上述第一接口、第二接口和第三接口。

下面参考图4,结合具体例子对根据本公开实施例的区块链系统进行示例性说明。本例中区块链系统为hyperledger(超级账本)的fabric项目(下文中简称为“fabric系统”),该区块链系统仅为示例以说明本公开的实施原理,本公开实施例也可以适用于其他类型的区块链系统,在此不做限制。

图4示意性示出了根据本公开实施例的区块链系统的示例架构图。

如图4所示,该区块链系统400可以包括:通用组件(fabriccomponents)410、加密服务提供者(cryptoserviceprovider,csp)工厂(factory)420、通用接口430和扩展接口440。

通用组件410用于实现区块链系统的一个或多个通用功能。csp工厂420用于实现加解密相关功能。示例性地,csp工厂420可以实现两类bccsp(blockchaincryptoserviceprovider,区块链加密服务提供者)实例:基于软件的bccsp(softwarebccsp)模块421和基于硬件的bccsp(hsm(hardwaresecuritymodules,硬件安全模块)bccsp)模块422。例如,基于软件的bccsp模块421通过调用fabric系统原生支持的密码算法实现。基于硬件的bccsp模块422通过调用pkcs11接口实现相关加密操作,密码保存于pkcs11通过pin口令保护的数据库或硬件设备中。基于软件的bccsp模块421可以支持通用接口430。

通用接口430包括:密钥生成(keygenerators)接口431、密钥派生(keyderivers)接口432、密钥导入(keyimporters)接口433、加密(encryptors)接口434、解密(decryptors)接口435、签名(signers)接口436、校验(verifiers)接口437、以及哈希(hashers)接口438。

进一步地,根据本公开的实施例,csp工厂420还配置有可插拔(plugin)模块423。可插拔模块423一方面保持与基于软件的bccsp模块421的统一接口:keygenerators接口431、keyderivers接口432、keyimporters接口433、encryptors接口434、decryptors接口435、signers接口436、verifiers接口437、以及hashers接口438。另一方面还提供扩展接口440。

扩展接口440包括:注册(registration)接口441、打开(open)接口442、查找(lookup)接口443、卸载(unregistration)接口444以及重新注册(updatereg)接口445。其中,registration接口441负责注册自定义的bccsp动态库。open接口442负责在区块链系统运行期间动态打开已注册的bccsp动态库。lookup接口443负责在区块链系统运行期间导出基于上述bccsp动态库中的密码算法的softwarebccsp模块421的统一接口。unregistration接口444负责卸载已经注册的动态库。updatereg接口445负责更新已经注册的动态库中的密码算法。

基于图4所示的区块链系统架构,在通用组件410初始化阶段,可以直接调用plugin模块423所提供的registration接口441,以实现动态库的注册。将动态库中的至少一个密码算法的实现插入通用组件410的配置文件中,并获得上述至少一个密码算法的配置路径。在通用组件410运行期间,如果需要使用上述至少一个密码算法执行预定操作,则可以通过调用open接口442和lookup接口443来加载相应的密码算法以执行相应的预定操作。

进一步地,根据本公开的实施例,在区块链系统运行阶段,具体来说在通用组件410运行期间,如果需要在已注册的动态库中添加更新的密码算法,则基于该已注册的动态库的配置路径将该更新的密码算法的实现逻辑放入配置文件的相应路径中,同理地,如果需要在已注册的动态库中删除一个或多个密码算法,则基于该已注册的动态库的配置路径将相应的密码算法从配置文件中删除。从而动态地实现了动态库功能的扩展或删减,无需中断区块链系统的运行。

进一步地,根据本公开的实施例,还可以在区块链系统运行阶段实现动态库的卸载。例如,在通用组件410运行期间,调用unregistration接口444来基于动态库的配置路径卸载动态库。

进一步地,根据本公开实施例的用于区块链系统的数据处理方法还可以包括:每隔预定时间间隔确定可插拔模块是否更新。如果是,则获取更新后的可插拔模块的配置信息。基于更新后的可插拔模块的配置信息和动态库的配置路径,对动态库进行重新注册。例如,在通用组件410运行期间,定时循环比较已有plugin模块423和最新plugin模块的版本信息,如果发现有新的plugin模块的版本,则调用updatereg接口445,重新注册动态库,即重新注册动态库中至少一个密码算法的实现。

示例性地,上述基于动态库中至少一个密码算法执行预定操作的过程可以包括以下情况中的至少一个。

一种情况下,上述基于动态库中至少一个密码算法执行预定操作可以包括:基于至少一个密码算法中的任一密码算法,生成针对区块链网络中的任一区块链节点的密钥。其中,上述密钥包括如下至少一项:公钥和私钥。

另一种情况下,上述基于动态库中至少一个密码算法执行预定操作可以包括如下至少一项:基于至少一个密码算法中的任一密码算法,对区块链系统产生的事务数据进行加密。基于至少一个密码算法中的任一密码算法,对区块链系统中已加密的事务数据进行解密。基于至少一个密码算法中的任一密码算法,对区块链系统产生的事务数据进行签名。基于至少一个密码算法中的任一密码算法,对区块链系统中已签名的事务数据进行验签。

例如,在区块链系统中注册的动态库用于实现至少一个国密算法,国密算法是国家密码局指定标准的一系列密码算法。其中可以包括sm1国密算法、sm2国密算法、sm3国密算法、sm4国密算法、等等。sm1为对称加密算法,sm2为椭圆曲线公钥密码算法,为非对称加密算法,sm3为消息摘要算法,sm4为无线局域网标准的分组数据算法。图4所示的区块链系统目前支持的标准密码算法包括:ecdsa(ellipticcurvedigtialsignaturealgorithm,椭圆曲线数字签名算法)、sha-2(securehashalgorithm2,安全散列算法2)、aes(advancedencryptionstandard,高级加密标准)算法等,并不支持国密算法。为使得区块链系统同时兼容标准密码算法和国密算法,本公开实施例引入插件注册机制,在区块链系统中注册上述动态库,使得csp工厂420可以支持动态插拔国密算法。从而区块链系统可以在运行过程中根据需要使用国密算法执行预定操作。

图4所示的区块链系统可以使用已注册的国密算法执行两类预定操作,一类是密钥的生成过程,另一类是密钥的签名、验签、加密等过程。

示例性地,在密钥的生成过程,csp工厂420通过config()方法进行配置,并在配置过程中,进一步通过调用plugin模块423提供的open接口442来确定所要加载的动态库。然后通过get()方法来进行加载过程。并在加载过程中,通过调用plugin模块423提供的lookup接口443来加载相应的国密算法,并在向上层应用展现的时候以通用接口430的方式进行展示。例如,在加载某一特定国密算法sm2时,向上层应用展示与密码生成相关的通用接口,如keygenerators接口431、keyderivers接口432、keyimporters接口433、getkey接口等。其中getkey接口在上文的实施例中未提及,也属于通用接口之一,用于获取实例对象中的密钥数据。上层应用通过调用keygenerators接口431、keyderivers接口432、keyimporters接口433、getkey接口来生成密钥,本例中这些接口逻辑在运行过程中采用上述加载的国密算法sm2。所生成的密钥可以包括公钥和私钥中至少一个,视具体情况而定。

示例性地,在区块链节点获取到自身的密钥后,在需要使用国密算法时,可以发出请求数据,区块链系统响应于该请求数据验证节点身份以进行与节点身份对应的逻辑。密钥的签名、验签、加密等过程可以由区块链系统中的msp(membershipserviceprovider,成员关系服务提供者)模块进行管理。对于上文中通过调用lookup接口443所加载的国密算法,msp模块可以直接使用该国密算法,并在向上层应用展现的时候以通用接口430的方式进行展示。例如,在加载某一特定国密算法sm2时,向上层应用展示与密钥的签名、验签、加密等过程相关的通用接口,如keyderivers接口432、keyimporters接口433、encryptors接口434、decryptors接口435、signers接口436、verifiers接口437、以及hashers接口438。其上层应用通过调用encryptors接口434实现利用所生成的公钥加密的过程,通过调用decryptors接口435实现利用所生成的私钥解密的过程,通过调用signers接口436实现利用所生成的私钥签名的过程,通过调用verifiers接口437实现利用所生成的公钥验签的过程,等等。所生成的公钥和私钥均为基于国密算法生成,实现了区块链系统关于国密算法的实现。

图5示意性示出了根据本公开实施例的用于区块链系统的数据处理装置的框图。

如图5所示,用于区块链系统的数据处理装置500包括:获取模块510、加载模块520和执行模块530。

获取模块510用于在区块链系统运行阶段,获取动态库的配置路径。

其中,该动态库在区块链系统初始化阶段进行注册,该动态库用于实现至少一个密码算法。

加载模块520用于基于所获取的配置路径加载动态库。

执行模块530用于基于上述至少一个密码算法执行预定操作。

需要说明的是,装置部分实施例中各模块/单元/子单元等的实施方式、解决的技术问题、实现的功能、以及达到的技术效果分别与方法部分实施例中各对应的步骤的实施方式、解决的技术问题、实现的功能、以及达到的技术效果相同或类似,在此不再赘述。

根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、片上系统、基板上的系统、封装上的系统、专用集成电路(asic),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。

例如,获取模块510、加载模块520和执行模块530中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,获取模块510、加载模块520和执行模块530中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、片上系统、基板上的系统、封装上的系统、专用集成电路(asic),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,获取模块510、加载模块520和执行模块530中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。

图6示意性示出了根据本公开的实施例的适于实现上文描述的方法的电子设备的框图。图6示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。

如图6所示,电子设备600包括处理器610和计算机可读存储介质620。该电子设备600可以执行根据本公开实施例的方法。

具体地,处理器610例如可以包括通用微处理器、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(asic)),等等。处理器610还可以包括用于缓存用途的板载存储器。处理器610可以是用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。

计算机可读存储介质620,例如可以是非易失性的计算机可读存储介质,具体示例包括但不限于:磁存储装置,如磁带或硬盘(hdd);光存储装置,如光盘(cd-rom);存储器,如随机存取存储器(ram)或闪存;等等。

计算机可读存储介质620可以包括计算机程序621,该计算机程序621可以包括代码/计算机可执行指令,其在由处理器610执行时使得处理器610执行根据本公开实施例的方法或其任何变形。

计算机程序621可被配置为具有例如包括计算机程序模块的计算机程序代码。例如,在示例实施例中,计算机程序621中的代码可以包括一个或多个程序模块,例如包括621a、模块621b、……。应当注意,模块的划分方式和个数并不是固定的,本领域技术人员可以根据实际情况使用合适的程序模块或程序模块组合,当这些程序模块组合被处理器610执行时,使得处理器610可以执行根据本公开实施例的方法或其任何变形。

根据本发明的实施例,获取模块510、加载模块520和执行模块530中的至少一个可以实现为参考图6描述的计算机程序模块,其在被处理器610执行时,可以实现上文所述的用于区块链系统的数据处理方法。

本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。

根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。

尽管已经参照本公开的特定示例性实施例示出并描述了本公开,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本公开的精神和范围的情况下,可以对本公开进行形式和细节上的多种改变。因此,本公开的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。

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