一种区块链智能合约的实现方法及电子设备与流程

文档序号:31792868发布日期:2022-10-14 16:19阅读:182来源:国知局
一种区块链智能合约的实现方法及电子设备与流程

1.本发明涉及区块链技术领域,具体涉及一种区块链智能合约的实现方法及电子设备。


背景技术:

2.随着区块链技术尤其是联盟链技术的不断发展和完善,区块链技术日益成为数据可信共享、跨机构间协作以及数据可验证追溯需求场景下相应解决方案的支撑技术。而区块链中的智能合约作为一种数字化合约,其本质是运行于区块链中的应用程序逻辑,其对于传统行业应用集成区块链技术而言至关重要。


技术实现要素:

3.本技术旨在提供一种区块链智能合约的实现方法,通过将智能合约状态数据的序列化与反序列化直接在合约执行引擎中进行实现,封装于读取智能合约状态数据方法和写入智能合约状态数据方法中,并作为外部方法引入到智能合约中,从而无需智能合约开发者自行实现相应方法,降低了其开发成本,减少了智能合约代码量。
4.根据本技术的一方面,提出一种区块链智能合约的实现方法,包括:
5.在智能合约执行引擎中实现读取智能合约状态数据方法和写入智能合约状态数据方法;
6.在所述读取智能合约状态数据方法和所述写入智能合约状态数据方法中使用堆内存申请方法和释放方法,并将所述读取智能合约状态数据方法和所述写入智能合约状态数据方法作为外部方法调用。
7.根据一些实施例,所述方法还包括:
8.调用所述读取智能合约状态数据方法根据参数信息从区块链中获取已序列化的智能合约状态数据以及对应智能合约状态数据的结构信息,并通过堆内存管理方法将智能合约状态数据反序列化为智能合约程序中的数据对象实例;
9.调用所述写入智能合约状态数据方法根据参数信息从区块链中获取对应智能合约状态数据的结构信息,从智能合约程序内存空间中读取数据对象实例数据,形成序列化的智能合约状态数据并存储到区块链中。
10.根据一些实施例,所述方法还包括:
11.定义一个或多个智能合约状态数据的数据结构,并指定所述数据结构体内各属性变量的数据对齐字节大小。
12.根据一些实施例,所述方法还包括:
13.为每个所述数据结构生成对应的结构信息以及结构信息标识,所述结构信息包括由基础数据类型构成的层级信息、每个所述基础数据类型对应的字节大小以及所述数据结构体内基础数据类型属性变量的数据对齐字节大小。
14.根据一些实施例,所述方法包括:
15.在部署智能合约时,获取所述智能合约状态数据的结构信息和所述结构信息标识并进行关联持久化存储。
16.根据一些实施例,所述方法包括:
17.声明和定义所述读取智能合约状态数据方法和所述写入智能合约状态数据方法;
18.在读取智能合约状态数据时,调用所述读取智能合约状态数据方法,以得到目标数据对象实例;
19.在写入智能合约状态数据时,调用所述写入智能合约状态数据方法,根据所述目标数据对象实例写入智能合约状态数据。
20.根据一些实施例,所述方法包括:
21.所述调用读取智能合约状态数据方法,包括:
22.在所述读取智能合约状态数据方法的调用参数中包含所述智能合约状态数据的结构信息标识和智能合约状态数据标识;
23.在所述读取智能合约状态数据方法的返回值中包含获取到的二进制形式智能合约状态数据的内存地址;
24.并将所述内存地址所指向的二进制数据转换为所述数据对象实例。
25.根据一些实施例,所述方法包括:
26.所述调用写入智能合约状态数据方法,包括:
27.在所述写入智能合约状态数据方法的调用参数中包含所述智能合约状态数据的结构信息标识、智能合约状态数据标识以及表示所述智能合约状态数据的数据对象实例的内存地址。
28.根据本技术的另一方面,提供一种电子设备,包括:
29.存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法中任一项所述的方法。
30.根据本技术的另一方面,提供一种计算机程序产品,包括计算机程序或指令,该计算机程序或指令被处理器执行时实现上述方法中任一项所述的方法。
31.根据本技术示例实施例,通过将智能合约状态数据的序列化与反序列化直接在合约执行引擎中进行实现,封装于读取智能合约状态数据方法和写入智能合约状态数据方法中,并作为外部方法引入到智能合约中,从而无需智能合约开发者自行实现相应方法,降低了其开发成本,减少了智能合约代码量。
32.应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本技术。
附图说明
33.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。
34.图1示出根据本技术示例实施例的区块链智能合约的实现方法流程图。
35.图2示出根据本技术示例实施例的智能合约编写方法流程图。
36.图3示出根据本技术示例实施例的智能合约执行引擎方法流程图。
37.图4示出根据本技术示例实施例的实现读取智能合约状态数据方法流程图。
38.图5示出根据本技术示例实施例的实现写入智能合约状态数据方法流程图。
39.图6示出根据本技术示例实施例的区块链智能合约交互示意图。
40.图7示出根据一示例性实施例的一种电子设备的框图。
具体实施方式
41.现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本技术将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
42.此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本技术的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本技术的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本技术的各方面。
43.附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
44.附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
45.应理解,虽然本文中可能使用术语第一、第二、第三等来描述各种组件,但这些组件不应受这些术语限制。这些术语乃用以区分一组件与另一组件。因此,下文论述的第一组件可称为第二组件而不偏离本技术概念的教示。如本文中所使用,术语“及/或”包括相关联的列出项目中的任一个及一或多者的所有组合。
46.本领域技术人员可以理解,附图只是示例实施例的示意图,附图中的模块或流程并不一定是实施本技术所必须的,因此不能用于限制本技术的保护范围。
47.智能合约本身需要利用编程语言来编写实现,并使用相应编程语言支持的数据结构实例对象来表示业务状态数据,即合约状态数据,进一步地需要对该数据结构实例对象进行序列化,并交由区块链节点进行持久化存储,或从区块链节点中获取已序列化后的合约状态数据,并进行反序列化以得到相应编程语言支持的数据结构实例对象。
48.某些编程语言支持将指针地址指向的内存二进制数据直接映射转换为该语言支持的数据结构对象实例,而无需额外代码去实现转换逻辑,此外还支持由开发者自行指定数据结构体内基础数据类型属性变量的数据对齐字节大小。
49.智能合约需要在智能合约执行引擎(以下简称合约执行引擎)中运行,合约执行引擎负责协调智能合约程序与区块链节点间的交互,某些合约执行引擎可以直接读写访问智能合约程序的内存空间。
50.智能合约状态数据的序列化与反序列化方法的性能直接影响着智能合约的运行性能,该方法所需的内存消耗也影响了智能合约程序运行过程中的内存消耗,此外,实现该方法所需的开发成本也关联着实现智能合约整体所需的开发成本,并影响了所部署智能合
约的代码量大小,进而可能影响区块链节点的数据存储及访问效率。
51.现有技术方案需要智能合约开发者在智能合约代码中加入合约状态数据序列化与反序列化的逻辑实现,该逻辑实现要么需要由智能合约开发者自行编写,要么需要借助引入的第三方依赖代码库。
52.发明人发现,现有技术方案会为智能合约开发者带来表达合约业务逻辑之外的过多开发成本,或者会导致智能合约的代码量较大,此外,不合适的编写实现或第三方依赖库会导致合约状态数据序列化与反序列化的性能较差,以及智能合约程序占用内存消耗较大。
53.本技术能使智能合约开发者无需自行实现合约状态数据序列化与反序列化逻辑或引入第三方依赖库,减少了相应开发成本和智能合约代码量,此外,兼顾了合约状态数据序列化与反序列化的性能以及不为智能合约程序带来过多内存空间消耗。
54.本技术用到的术语定义如下。
55.区块链(blockchain):狭义上区块链是按照时间顺序,将数据区块以顺序相连的方式组合成的链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。广义上的区块链技术是利用块链式数据结构验证与存储数据,利用分布式节点共识算法生成和更新数据,利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约,编程和操作数据的全新的分布式基础架构与计算范式。
56.智能合约(smart contract):一种旨在以信息化方式传播、验证或执行合同的计算机协议。一个智能合约是一套以数字形式定义的承诺(commitment),包括合约参与方可以在上面执行这些承诺的协议。区块链中的智能合约,需要开发者完成智能合约开发后将其部署与区块链节点中。
57.智能合约程序(smart contract procedure):以计算机程序形式来表达的智能合约实例,其运行过程中会占用相应计算机的运算及存储资源。
58.智能合约方法(smart contract function):在智能合约程序中表达一组特定合约逻辑的计算机程序函数,智能合约执行引擎通过调用智能合约程序中的特定智能合约方法来执行智能合约逻辑。
59.智能合约引擎(smart contract engine):也被称为智能合约执行引擎,即执行智能合约程序的技术环境。负责建立、管理和提供执行智能合约程序所需资源和数据,管理和协调智能合约方法与区块链节点之间的交互。
60.高级语言(high-level programming language):一种独立于机器,面向过程或对象的语言。高级语言是参照数学语言而设计的近似于日常会话的语言。计算机语言具有高级语言和低级语言之分。而高级语言又主要是相对于汇编语言而言的,它是较接近自然语言和数学公式的编程,基本脱离了机器的硬件系统,用人们更易理解的方式编写程序。
61.数据对齐(data struct alignment):数据对齐是内存数据与内存中的相对位置的问题。如果一个变量的内存地址正好是它自身长度的整数倍,它就被称作是自然对齐的。数据对齐是为了读取数据的效率。
62.外部方法(external function):在当前程序代码所见范围之外定义实现的方法,开发者可以直接声明使用外部方法,而无需指明外部方法定义所处的具体位置。
63.大小端模式(endianness):数据在内存中的存储顺序模式,可为大端模式或小端
模式。大端模式,是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中。小端模式,是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值低。
64.以下结合附图对本技术的示例实施例进行说明。
65.图1示出根据本技术示例实施例的区块链智能合约的实现方法流程图。
66.参见图1,在s101,在智能合约执行引擎中实现读取智能合约状态数据方法和写入智能合约状态数据方法。
67.根据一些实施例,在读取智能合约状态数据方法和写入智能合约状态数据方法中使用堆内存申请方法和释放方法,并将读取智能合约状态数据方法和写入智能合约状态数据方法标记为可被外部调用的方法。
68.根据一些实施例,可使用高级语言来编写智能合约,高级语言需满足以下条件:支持将指针地址指向的内存二进制数据直接映射转换为该语言支持的数据结构对象实例,无需使用额外代码来实现转换;支持开发者自行指定数据结构体内基础数据类型属性变量的数据对齐字节大小。
69.智能合约在合约执行引擎中运行,智能合约程序与合约执行引擎之间的关系需满足条件:合约执行引擎能够直接读写访问智能合约程序的内存空间。
70.在上述前提下,将智能合约状态数据的序列化与反序列化直接在合约执行引擎中实现,并将包含该实现的函数方法作为外部方法引入到智能合约中。
71.在s103,调用读取智能合约状态数据方法根据参数信息从区块链中获取已序列化的智能合约状态数据以及对应智能合约状态数据的结构信息,并调用堆内存管理方法将智能合约状态数据反序列化为智能合约程序中的数据对象实例。
72.根据一些实施例,使用上述高级语言编写智能合约,声明读取智能合约状态数据方法(记为rscs)和写入智能合约状态数据方法(记为wscs)作为外部方法进行引入。
73.rscs方法的参数中包含智能合约状态数据的结构信息标识(记为scssi)和智能合约状态数据标识(记为scsi),rscs方法的返回值中包括获取到的二进制形式智能合约状态数据的内存地址(记为bscsa)
74.在读取智能合约状态数据时,将目标数据对象实例的结构信息标识(记为osi)以及目标智能合约状态数据标识(记为oscsi)作为参数调用rscs方法,并将其返回值中bscsa所指向的二进制数据转换为目标数据对象实例,即实现了将智能合约状态数据反序列化为智能合约程序中的数据对象实例。
75.在s105,调用写入智能合约状态数据方法根据参数信息从区块链中获取对应智能合约状态数据的结构信息,从智能合约程序内存空间中读取数据对象实例数据,形成序列化的智能合约状态数据并存储到区块链中。
76.根据一些实施例,写入智能合约状态数据方法(wscs)的参数中包括scssi、scsi以及表示智能合约状态数据的数据对象实例的内存地址(记为scsoa)。
77.在写入智能合约状态数据时,将目标数据对象实例的结构信息标识(osi)、目标智能合约状态数据标识(oscsi)和目标数据对象实例的内存地址(ooa)作为参数调用wscs方法。
78.合约执行引擎直接读写智能合约程序的内存数据,利用编写智能合约时所使用的高级语言本身的特性,直接将合约执行引擎写入智能合约程序内存中的数据,转换为相应语言所支持的数据对象实例,或直接从智能合约程序内存中读取数据对象实例数据,形成序列化的智能合约状态数据并存储到区块链中。
79.图2示出根据本技术示例实施例的智能合约编写方法流程图。
80.参见图2,根据一些实施例,智能合约编写的方法包括以下步骤。
81.s1.使用高级语言定义一个或多个智能合约状态数据的数据结构,并指定数据结构体内各属性变量的数据对齐字节大小。
82.s2.为上述每个数据结构生成对应结构信息,数据结构与结构信息一一对应,结构信息的表现形式为字符串或二进制,所述结构信息包括了由基础数据类型构成的层级信息(记为hs)、每个基础数据类型在该高级语言中对应的字节大小(记为es)以及数据结构体内基础数据类型属性变量的数据对齐字节大小(记为as)。
83.s3.为每个结构信息生成唯一标识作为结构信息标识(记为osi),结构信息与结构信息标识一一对应,结构信息标识表现形式为字符串或二进制。
84.s4.使用上述高级语言编写智能合约,声明读取智能合约状态数据方法(记为rscs)和写入智能合约状态数据方法(记为wscs)作为外部方法进行引入,rscs方法的参数中包含智能合约状态数据的结构信息标识(记为scssi)和智能合约状态数据标识(记为scsi),rscs方法的返回值中包括获取到的二进制形式智能合约状态数据的内存地址(记为bscsa),wscs方法的参数中包括scssi、scsi以及表示智能合约状态数据的数据对象实例的内存地址(记为scsoa)。
85.s5.使用上述高级语言编写智能合约逻辑,在读取智能合约状态数据时,将目标数据对象实例的结构信息标识(记为osi)以及目标智能合约状态数据标识(记为oscsi)作为参数调用rscs方法,并将其返回值中bscsa所指向的二进制数据转换为目标数据对象实例;在写入智能合约状态数据时,将osi、oscsi和目标数据对象实例的内存地址(ooa)作为参数调用wscs方法。
86.s6.使用上述高级语言编写智能合约,实现堆内存申请方法(记为allocate)和释放方法(记为deallocate),并都将其标记为可被外部调用的方法。
87.图3示出根据本技术示例实施例的智能合约执行引擎方法流程图。
88.参见图3,根据一些实施例,智能合约执行引擎的方法包括以下步骤。
89.s1.在合约执行引擎中实现rscs方法和wscs方法,在合约执行引擎中设置一个地址列表变量(记为at),该地址列表变量用于存储在rscs的实现逻辑中向智能合约程序内存所申请的内存空间起始地址。
90.s2.在合约执行引擎中实现rscs方法和wscs方法,设定欲被存储到区块链中的已序列化二进制智能合约状态数据的大小端模式(记为第一大小端模式),并判断获取智能合约程序所处运行环境(虚拟机或真实机器)的大小端模式(记为第二大小端模式)。
91.s3.在合约执行引擎中实现rscs方法。
92.s4.在合约执行引擎中实现wscs方法。
93.s5.在智能合约方法被调用执行结束后,检查合约执行引擎中的at列表变量是否不为空,若不为空则遍历该列表变量,根据其中的每一个元素调用智能合约程序的
deallocate方法以释放智能合约程序内存。
94.图4示出根据本技术示例实施例的实现读取智能合约状态数据方法流程图。
95.参见图4,根据一些实施例,读取智能合约状态数据rscs方法根据被智能合约程序调用时参数传递的scssi和scsi从区块链中获取相应的智能合约状态数据结构信息以及已被序列化的智能合约状态数据(记为第一状态数据)。
96.根据智能合约状态数据结构信息中的hs、es以及as信息,结合第一状态数据计算出欲向智能合约程序申请的内存大小。
97.然后根据该内存大小调用智能合约程序中的allocate方法并得到返回的内存地址值(记为ara),同时将该地址值加入到合约执行引擎中的at变量中。
98.然后根据上述智能合约状态数据结构信息将第一状态数据进行转换写入ara所指向的智能合约程序内存空间,转换过程中若涉及对整数和浮点数类型数据的转换则将第一大小端模式下的相应数据转换为第二大小端模式下的相应数据。
99.图5示出根据本技术示例实施例的实现写入智能合约状态数据方法流程图。
100.参见图5,写入智能合约状态数据wscs方法根据被智能合约程序调用时参数传递的scssi、scsi及scsoa,首先根据scssi和scsi从区块链中获取相应的智能合约状态数据结构信息。
101.然后根据智能合约状态数据结构信息中的hs、es以及as,从scsoa所指向的智能合约程序内存空间读取数据对象实例数据,并对所读取的数据进行转换和拼接得到二进制形式的已序列化智能合约状态数据(记为第二状态数据),然后将第二状态数据存储到区块链链中。
102.ng
103.图6示出根据本技术示例实施例的区块链智能合约交互示意图。
104.参见图6,根据一些实施例,智能合约部署后,在智能合约执行引擎中执行,在智能合约部署和执行过程中以及执行之后,和区块链节点之间的交互过程如下。
105.部署智能合约时,区块链节点获取该智能合约的相关智能合约状态数据结构信息和结构信息标识并进行关联持久化存储。
106.在合约执行引擎中调用rscs方法和wscs方法。
107.在合约执行引擎中调用rscs方法,rscs方法根据被智能合约程序调用时参数传递的scssi和scsi从区块链中获取相应的智能合约状态数据结构信息以及已被序列化的智能合约状态数据(记为第一状态数据),根据智能合约状态数据结构信息中的hs、es以及as信息,结合第一状态数据计算出欲向智能合约程序申请的内存大小。
108.然后合约执行引擎根据该内存大小调用智能合约程序中的allocate方法并得到返回的内存地址值(记为ara),同时将该地址值加入到合约执行引擎中的at变量中,然后根据上述智能合约状态数据结构信息将第一状态数据进行转换写入ara所指向的智能合约程序内存空间。
109.在合约执行引擎中调用wscs方法,wscs方法根据被智能合约程序调用时参数传递的scssi、scsi及scsoa,首先根据scssi和scsi从区块链中获取相应的智能合约状态数据结构信息,然后根据智能合约状态数据结构信息中的hs、es以及as,从scsoa所指向的智能合约程序内存空间读取数据对象实例数据,并对所读取的数据进行转换和拼接得到二进制形
式的已序列化智能合约状态数据(记为第二状态数据),然后将第二状态数据存储到区块链链中。
110.在智能合约方法被调用执行结束后,检查合约执行引擎中的at列表变量是否不为空,若不为空则遍历该列表变量,根据其中的每一个元素调用智能合约程序的deallocate方法以释放智能合约程序内存。
111.应清楚地理解,本技术描述了如何形成和使用特定示例,但本技术不限于这些示例的任何细节。相反,基于本技术公开的内容的教导,这些原理能够应用于许多其它实施例。
112.本领域技术人员可以理解实现上述实施例的全部或部分步骤被实现为由cpu执行的计算机程序。在该计算机程序被cpu执行时,执行本技术提供的上述方法所限定的上述功能的程序可以存储于一种计算机可读存储介质中,该存储介质可以是只读存储器,磁盘或光盘等。
113.此外,需要注意的是,上述附图仅是根据本技术示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
114.通过对示例实施例的描述,本领域技术人员易于理解,根据本技术实施例的区块链智能合约的实现方法至少具有以下优点中的一个或多个。
115.根据示例实施例,通过将智能合约状态数据的序列化与反序列化直接在合约执行引擎中进行实现,封装于读取智能合约状态数据方法和写入智能合约状态数据方法中,并作为外部方法引入到智能合约中,从而无需智能合约开发者自行实现相应方法,降低了其开发成本,减少了智能合约代码量。
116.根据示例实施例,在合约执行引擎中直接读写智能合约程序内存数据,利用编写智能合约所用高级语言本身的特性,直接将合约执行引擎写入智能合约程序内存中的数据转换为相应语言所支持的数据对象实例,或直接从智能合约程序内存中读取数据对象实例数据,从而使得在智能合约程序中无需运行额外的转换逻辑,也无需额外的用于存储复制数据的内存空间,进而保障了该方法的性能,并降低了智能合约程序本身所需的内存空间消耗。
117.图7示出根据一示例性实施例的一种电子设备的框图。
118.下面参照图7来描述根据本技术的这种实施方式的电子设备200。图7显示的电子设备200仅仅是一个示例,不应对本技术实施例的功能和使用范围带来任何限制。
119.如图7所示,电子设备200以通用计算设备的形式表现。电子设备200的组件可以包括但不限于:至少一个处理单元210、至少一个存储单元220、连接不同系统组件(包括存储单元220和处理单元210)的总线230、显示单元240等。
120.其中,存储单元存储有程序代码,程序代码可以被处理单元210执行,使得处理单元210执行本说明书描述的根据本技术各种示例性实施方式的方法。
121.存储单元220可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(ram)2201和/或高速缓存存储单元2202,还可以进一步包括只读存储单元(rom)2203。
122.存储单元220还可以包括具有一组(至少一个)程序模块2205的程序/实用工具2204,这样的程序模块2205包括但不限于:操作系统、一个或者多个应用程序、其它程序模
块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
123.总线230可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
124.电子设备200也可以与一个或多个外部设备300(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备200交互的设备通信,和/或与使得该电子设备200能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口250进行。并且,电子设备200还可以通过网络适配器260与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。网络适配器260可以通过总线230与电子设备200的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备200使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
125.通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。根据本技术实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、或者网络设备等)执行根据本技术实施方式的上述方法。
126.软件产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
127.计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。
128.可以以一种或多种程序设计语言的任意组合来编写用于执行本技术操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
129.本领域技术人员可以理解上述各模块可以按照实施例的描述分布于装置中,也可
以进行相应变化唯一不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
130.以上具体地示出和描述了本技术的示例性实施例。应可理解的是,本技术不限于这里描述的详细结构、设置方式或实现方法;相反,本技术意图涵盖包含在所附权利要求的精神和范围内的各种修改和等效设置。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1