具体实施方式
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本说明书的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本说明书应用于其它类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。
应当理解,本说明书中所使用的“系统”、“装置”、“单元”和/或“模组”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换所述词语。
如本说明书和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。
本说明书中使用了流程图用来说明根据本说明书的实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
物联网(The Internet of Things,IOT)是物品之间通过连接网络来共享信息并产生有用信息的运行机制。在一些实施例中,所述信息可以包括但不限于声信息、光信息、热信息、电信息、力学信息、化学信息、生物信息和位置信息等。物联网被广泛应用于各种场景,例如,智能家居、物流零售、健康管理等。
IOT设备是物联网中采集物品信息的设备。在一些实施例中,IOT设备可以是物品本身。例如,IOT设备可以是智能冰箱、智能空调和智能灯具等。在一些实施例中,IOT设备也可以不同于物品。例如,物品可以是快递,IOT设备可以是GPS运输车、入库扫描仪、智能取件柜等。
在一些实施例中,IOT设备还可以采集人体生物信息。例如,IOT设备可以是智能穿戴设备,用于采集人体的心率、血压和睡眠情况等信息。
物联网通过将各类IOT设备接入网络,可以实现物与物、物与人的泛在连接,从而实现对物品和过程的智能化感知、识别和管理。在一些实施例中,IOT设备接入网络的方式通常为通过中心服务器接收多个IOT设备采集的物品信息,再由该中心服务器将物品信息写入区块链。该方法信息传输链路较长,信息安全存在较大的风险,同时依赖于中心服务器转发物品信息会降低信息写入区块链的效率。本说明书公开的一些实施例可以将IOT设备采集的物品信息直接写入区块链中。进一步地,为了保证数据的完整性和安全性,在IOT设备中设置有可信执行环境来生成和管理公私钥和设备标识,可以和区块链服务平台进行双向验证。同时为了便于IOT设备对接区块链服务,通过SDK将对链协议封装,完成数字签名以及交易生成等相关功能。
图1是根据本说明书的一些实施例所示的IOT设备的示例性示意图。
如图1所示,IOT设备可以包括可信执行环境110、业务应用程序120以及对链服务程序130。
可信执行环境(Trusted Execution Environment,TEE)110是设备的处理器上的安全区域,可以确保加载到环境中的代码和数据的安全性、机密性和完整性。示例性的可信执行环境可以包括基于Software Guard Extensions(SGX)、Secure EncryptedVirtualization或TrustZone等技术的可信执行环境。以
公司的SGX为例,当程序在可信执行环境中执行时会受到Enclave保护,外界是无法篡改位于Enclave中的数据或影响该程序的执行过程。
在一些实施例中,可信执行环境110可以至少用于生成并存储IOT设备的设备公私钥对以及设备标识。
设备公私钥对112是可信执行环境110生成的公钥和私钥。在一些实施例中,设备公钥可以对设备私钥加密的数据进行解密。
设备标识114是用于表示IOT设备的符号。可以理解,每个IOT设备都可以用对应的标识来表示。其中,标识可以是IOT设备的名字、数字(如1、2)、字母(如a、b)或其他符号。例如,用户甲的智能电冰箱的设备标识为冰箱01。
在一些实施例中,可信执行环境110中还可以部署可信应用程序116。可信应用程序116是用于实现可信执行环境中的至少部分需要保密的数据处理操作的代码。例如,用于生成公私钥对的密钥生成代码、实现“生成数据存证交易”的操作的代码等。关于在可信执行环境中部署可信应用程序116的详细描述可以参见对链服务程序130的相关描述,在此不再赘述。
业务应用程序120是用于实现处理器中可信执行环境外的非保密数据处理操作的代码。
在一些实施例中,业务应用程序120可以用于获取物联网数据。关于业务应用程序120获取物联网数据的详细描述可以参见步骤210,在此不再赘述。
在一些实施例中,业务应用程序120还可以用于实现对外数据通信,例如接收区块链服务平台的运行配置请求,或者将数据存证交易发送给设备绑定的区块链,以便将物联网数据存入区块链。关于业务应用程序120将数据存证交易发送给设备绑定的区块链的详细描述可以参见步骤230,在此不再赘述。
业务应用程序120中可以包括业务逻辑122。在一些实施例中,业务应用程序可以基于业务逻辑122实现数据处理操作。关于业务逻辑122的详细描述可以参见图2及其相关描述,在此不再赘述。
对链服务程序130用于实现IOT设备与区块链交互。在一些实施例中,降低IOT设备厂商的开发成本,对链服务程序可以通过对链SDK实现,对链SDK可以是区块链服务平台提供的用于高效实现应用程序的开发、编译以及执行等的软件开发工具包(SoftwareDevelopment Kit,SDK),其可以看作是支持对接区块链服务各种功能的组件的集合。
考虑到对链操作中的部分可能需要在可信执行环境中执行,在一些实施例中,对链SDK还能够提供通过中央处理器提供的可信执行环境指令实现的多种数据运算或处理功能的API 132(Application Programming Interface,应用程序接口),供开发人员在编写应用程序中使用。可以理解,处理器中需要完成的数据处理操作中可能存在至少部分数据处理操作涉及需要保密的数据,用户可以基于数据处理操作中是否存在需要保密的数据,通过对链SDK将其编写为业务应用程序120和可信应用程序116。其中,业务应用程序120中可以有与一个或多个可信应用程序116对应的调用接口(如函数接口),进而通过执行业务应用程序便可以调用可信执行环境中的可信应用程序,以便至少部分数据处理操作(如保密数据处理操作)在可信执行环境中完成。
在一些实施例中,对链SDK还可以提供数据加解密功能、数据签名以及验签,进一步降低IOT设备厂商的开发成本。
在一些实施例中,对链服务程序可以用于生成数据存证交易。数据存证交易是将物联网数据写入区块链的交易请求。可以理解,不同区块链对应的数据存证交易的格式和要求不同,区块链服务平台可以基于不同的区块链为IOT设备提供对应的对链SDK。
关于对链SDK生成数据存证交易的更多描述可以参见步骤220,在此不再赘述。
图2是根据本说明书的一些实施例所示的基于区块链的IOT设备的数据存储方法的示例性流程图。
如图2所示,流程200可以包括:
步骤210,获取物联网数据。
具体的,步骤210可以由获取模块执行。
物联网数据即表征物联网中物品信息的数据。例如,物联网数据可以是表征智能冰箱内部温度的数据。又例如,物联网数据可以是表征快递位置的数据。
在一些实施例中,物联网数据可以包括IOT设备采集的数据及其对应的数据的采集时间。
例如,物联网数据可以包括IOT设备“智能冰箱”采集的冰箱内部温度“5℃”,以及内部温度的采集时间“2021年2月22日10点整”。
又例如,物流网数据可以包括IOT设备“GPS运输车”采集的其运输的快递的位置“A市”,以及快递位置的采集时间“2021年2月22日15点整”。
在一些实施例中,获取模块可以通过传感器、射频识别技术、全球定位系统、红外感应器和激光扫描器等采集物联网数据。
具体地,获取模块可以通过传感器、射频识别技术、全球定位系统、红外感应器和激光扫描器等获取物品的电信号、光信号和卫星信号等信号,再通过执行业务应用程序120中的业务逻辑122,基于所述信号获取物联网数据。
例如,智能冰箱可以通过内置的温度传感器获取其内部的电信号,并基于业务逻辑将电信号转换为温度信息。又例如,GPS运输车可以通过内置的GPS定位器获取卫星信号,并基于业务逻辑即将卫星信号转换为其运输的快递的位置信息。
步骤220,生成数据存证交易。
具体的,步骤220可以交易生成模块执行。
数据存证交易是将物联网数据写入区块链的交易请求。在一些实施例中,数据存证交易可以包括物联网数据、设备标识以及第一数字签名。
如前所述,设备标识是用于表示IOT设备的符号。关于设备标识的详细描述可以参见图1及其相关描述,在此不再赘述。
第一数字签名是由IOT设备基于物联网数据产生的证明IOT设备身份的字符串。
在一些实施例中,交易生成模块可以调用可信执行环境中的设备私钥对物联网数据以及设备标识进行签名得到的第一数字签名。设备私钥是设备公私钥对中的私钥。关于设备公私钥对的详细描述可以参见图1,在此不再赘述。具体地,交易生成模块可以在可信执行环境中通过哈希函数基于物联网数据以及设备标识生成摘要,然后用设备私钥对该摘要进行加密,得到第一数据数字签名。
继续以IOT设备“智能冰箱”为例,智能冰箱的数据存证交易可以包括物联网数据(即“智能冰箱”采集的冰箱内部温度“5℃”,以及内部温度的采集时间“2021年2月22日10点整”)、智能冰箱标识“冰箱01”以及对应的第一数字签名。
在一些实施例中,数据存证交易可以在可信执行环境中生成。
具体地,对链SDK先将保密数据处理操作“生成数据存证交易”编译为可信执行程序116,并加载到可信执行环境110中;业务应用程序120获取物联网数据后,可以通过API132调用可信执行环境110中的可信执行程序116基于物联网数据和设备标识生成第一数字签名,然后将第一数字签名、物联网数据和设备标识打包进“数据存证交易”,最后将“数据存证交易”返回给业务应用程序120。
进一步地,为了保证数据存证交易不被泄露和纂改,在可信执行程序返回给业务应用程序之前可以对数据存证交易进行加密,只有有权限的用户有解密密码,可以通过解密获取存证交易的内容。在一些实施例中,加密可以包括对称加密和非对称加密等。对称加密是指加密密码和解密密码相同的加密技术。在一些实施例中,对称加密可以包括但不限于:数据加密标准(DES,Data Encryption Standard)、三次数据加密标准(3DES,TripleDES)、高级加密标准(Advanced Encryption Standard,AES)、RC2算法、RC4算法、RC5和Blowfish加密算法等。非对称加密是指加密密码和解密密码不同的加密技术。在一些实施例中,非对称加密可以包括但不限于:RSA算法、数字签名算法(Digital SignatureAlgorithm,DSA)、椭圆曲线签名算法(Elliptic curve Cryptography and DigitalSignature Algorithm,ECDSA)等。在一些实施例中,加密技术还可以是其他方式,本说明书实施例不作限制。
步骤230,将数据存证交易发送给IOT设备绑定的区块链,以便区块链节点将物联网数据存入区块链。
具体的,步骤230可以由存储模块执行。
区块链是由多个区块链节点组成的分布式、去中心化的数据库。区块链节点具有计算和存储能力,通过网络连接。
IOT设备绑定的区块链是可以和IOT设备相互信任并相互传输数据的区块链。在一些实施例中,IOT设备可以通过区块链服务平台绑定区块链。关于将IOT设备与区块链绑定的详细描述可以参见图3及其描述,在此不再赘述。
具体地,存储模块可以通过执行业务应用程序120中的业务逻辑122,通过网络将数据存证交易发送给IOT设备绑定的区块链,例如,IOT设备中的业务应用程序120可以将数据存证交易发送给区块链上的某个节点,该节点将交易在链上广播,区块链节点基于共识算法对数据存证交易进行验证后,将数据存证交易中的物联网数据存入与IOT设备绑定的区块链中。
在一些实施例中,共识算法可以包括但不限于:工作量证明(Proof of Work,PoW)、权益证明(Proof of State,PoS)、权威证明(Proof-of-Authority,PoA)拜占庭容错(Byzantine Fault-Tolerant,BFT)、实用拜占庭容错(Practical Byzantine FaultTolerance,PBFT)、委托拜占庭容错(Delegated Byzantine Fault Tolerance,DBFT)等。
图3是根据本说明书的一些实施例所示的将IOT设备与区块链绑定的方法的示例性流程图。
如图3所示,流程300可以包括:
步骤310,获取待绑定区块链的链信息。
具体的,步骤310可以由链信息获取模块执行。
待绑定区块链是将用于存储IOT设备采集的物联网数据的、还未绑定的区块链。例如,智能冰箱准备将采集的温度信息存储到某未绑定的区块链,则该区块链即待绑定区块链。
在一些实施例中,链信息获取模块可以向区块链服务平台申请创建区块链或申请加入某区块链;将申请创建的区块链或申请加入的区块链作为待绑定区块链;获取区块链服务平台提供的待绑定区块链的链信息。
区块链服务(Block chain as a Service,BaaS)平台是将区块链框架嵌入云计算平台,利用云服务基础设施的部署和管理优势,为用户提供便捷、高性能的区块链生态环境和生态配套服务,支持用户的业务拓展及运营支持的区块链开放平台。在一些实施例中,区块链服务平台还可以基于用户请求创建或维护多条区块链,进而使得用户能够将数据存入区块链或者共享区块链上的数据。
在一些实施例中,链信息获取模块还可以向区块链服务平台申请创建区块链,并设置申请创建的区块链的类型、数据结构、共识算法和用户权限等,并发送给区块链服务平台,区块链服务平台在云计算平台中组织相应的节点设备,按照设置请求创建一条区块链。
链信息获取模块向区块链服务平台申请加入某区块链即是申请将数据存储到某一已有区块链和访问该区块链上的数据的权限。在一些实施例中,链信息获取模块可以向区块链服务平台发送申请加入的区块链的请求,请求可以包括请求加入的区块链的类型、数据结构、共识算法、用户权限、区块链名称或地址等,区块链服务平台可以为链信息获取模块开通该区块链对应的数据存储和访问权限。
在一些实施例中,链信息获取模块创建和/或申请加入待绑定区块链后,区块链服务平台可以向链信息获取模块发送待绑定区块链的链信息。
待绑定区块链的链信息即待绑定区块链的相关信息。在一些实施例中,待绑定区块链的链信息可以包括待绑定区块链标识以及链证书。
待绑定区块链标识是用于表示待绑定区块链的符号。可以理解,每条待绑定区块链都可以用对应的标识来表示。其中,标识可以是待绑定区块链的名称。例如,X公司物流区块链。标识也可以是待绑定区块链的地址,例如访问网址或者该区块链上某节点的网络地址。标识还可以是数字(如1、2)、字母(如a、b)或其他符号。例如,区块链“A”。
链证书是可以用于证明待绑定区块链合法性和/或能标示该待绑定区块链身份的证书。在一些实施例中,区块链服务平台可以通过向证书颁发机构发送证书请求为其生成或维护的区块链获取链证书。其中,证书颁发机构(Certificate Authority,CA)可以是负责发放和管理数字证书的受信任的第三方权威机构。
步骤320,生成绑定请求。
具体的,步骤320可以由请求生成模块执行。
绑定请求是将IOT设备和待绑定区块链绑定的请求。在一些实施例中,绑定请求包括IOT设备标识、设备公钥以及待绑定区块链的链信息。
具体地,请求生成模块可以将IOT设备标识、设备公钥和待绑定区块链的链信息封装为绑定请求。例如,请求生成模块可以将“冰箱01”、冰箱公钥和待绑定区块链的链信息(“区块链A”和链证书)封装为绑定请求。
在一些实施例中,绑定请求还可以包括IOT设备的厂商信息和第三数字签名。
IOT设备的厂商信息是指生产IOT设备的厂家信息。在一些实施例中,IOT设备的厂商信息可以包括厂商名称和厂商的身份证明文件等。
第三数字签名是由IOT设备基于IOT设备标识、设备公钥以及厂商信息产生的证明IOT设备身份的字符串。
在一些实施例中,请求生成模块可以调用可信执行环境中的设备私钥对以上数据进行签名得到的第三数字签名。关于得到第三数字签名的更多描述可以参见第一数字签名的相关描述,在此不再赘述。
步骤330,将绑定请求发送给区块链服务平台,以便区块链服务平台在验证所述绑定请求后,基于待绑定的区块的链信息将IOT设备标识以及设备公钥发送给待绑定的区块链。
具体的,步骤330可以由请求发送模块执行。
在一些实施例中,请求发送模块可以通过IOT设备将绑定请求发送给区块链服务平台。例如,请求发送模块可以IOT设备“智能手表”内置的通信装置,直接通过网络将绑定请求发送给区块链服务平台。
在一些实施例中,请求发送模块还可以通过某联网设备搜集多个IOT设备的绑定请求,并批量发送给区块链服务平台。例如,请求发送模块可以将多个IOT设备“智能冰箱”的绑定请求传输到联网的电脑,由电脑直接通过网络将多个绑定请求批量发送给区块链服务平台。
进一步地,区块链服务平台可以对接收的绑定请求进行验证。在一些实施例中,区块链服务平台可以验证绑定请求中的链信息是否合法进而对绑定请求进行验证。具体的,区块链服务平台可以验证链信息中的待绑定区块链标识是否存在,或者链证书是否合法有效。在一些实施例中,区块链服务平台可以基于验证绑定请求中的设备公钥验证其中的第三方数字签名,以确保绑定请求的信息完整性。
绑定请求通过验证后,在一些实施例中,区块链服务平台可以通过网络直接将IOT设备标识以及设备公钥发送给待绑定的区块链。例如,区块链服务平台可以将“冰箱01”和冰箱公钥发送给区块链“A”。区块链“A”的节点存储该IOT设备的设备标识及设备公钥,以用于进行交易验证。
在一些实施例中,IOT设备可以通过IOT设备管理平台与区块链服务平台通信。IOT设备管理平台可以是管理IOT设备的平台,用于记录各IOT设备的身份信息(设备标识及设备公钥等)以及设备状态(设备是否处于使用状态、采集数据类型等)。具体的,IOT设备的请求发送模块可以通过网络先将绑定请求发送给IOT设备管理平台,再由IOT设备管理平台发送给区块链服务平台,进而完成区块链绑定。
步骤340,接收区块链服务平台返回的指示是否绑定成功的绑定结果。
具体的,步骤340可以由请求接收模块执行。
绑定结果即区块链服务平台返回的指示IOT设备和待绑定区块链是否绑定成功的结果。
在一些实施例中,区块链服务平台接收的IOT设备的绑定请求不充分或不合法时,可能会指示绑定失败。例如,区块链服务平台验证绑定请求中的链信息不合法或者第三签名验证不通过时,则区块链服务平台会指示绑定失败。
在一些实施例中,请求接收模块可以通过网络接收区块链服务平台返回的绑定结果。
在一些实施例中,区块链服务平台返回的绑定结果主要是单方面指示待绑定区块链接收了IOT设备的绑定请求,并能够对IOT设备发起的交易进行处理。
因此,在又一些实施例中,在IOT设备的绑定请求通过验证之后,IOT设备还可以对待绑定区块链的合法性进行验证,进而通过双向验证完成最终的绑定。具体地,IOT设备可以获取初始化配置请求及第四数字签名,利用区块链服务平台的公钥验证第四数字签名,若验证通过,则证明待绑定区块链具有合法性。初始化配置请求是验证待绑定区块链合法性的请求。在一些实施例中,初始化配置是由区块链服务平台向IOT设备发送的请求。例如,区块链A向冰箱01发送的请求。
在一些实施例中,初始化配置请求可以包括待绑定区块链的地址。待绑定区块链的地址可以是待绑定区块链上某一节点的网络地址。
第四数字签名由区块链服务平台基于初始化配置请求产生的证明区块链服务平台身份的字符串。在一些实施例中,区块链服务平台可以调用区块链服务平台的私钥对初始化配置请求进行签名得到第四字签名。
在一些实施例中,IOT设备中的业务应用程序120可以通过网络接收来自区块链服务平台发起的初始化配置请求,并将初始化配置请求发送给对链服务程序130,对链服务程序130基于区块链服务平台的公钥验证第四数字签名,若验证通过,则说明该初始化配置请求是由区块链服务平台发起,该请求中的待绑定区块链具有合法性,IOT设备可以将初始化配置请求中的待绑定区块链节点的地址作为IOT设备绑定的区块链节点的地址,即将IOT设备和待绑定区块链进行绑定。之后,IOT设备可以通过该地址向区块链发起交易。
完成区块链绑定后,IOT设备则可以投入使用,获取物联网数据并请求区块链存证。如,完成绑定的IOT设备可以出厂并设置在相应的“岗位”采集数据,完成数据上链存证。在一些实施例中,IOT设备投入使用后,其绑定的区块链还可以进行更替。例如,“冰箱01”目前为“生鲜超市”链提供温度信息,需要“冰箱01”后续为“冰箱销售商”链提供温度信息,则有权限的配置方可以向IOT设备发送运行配置请求,对该IOT设备绑定的区块链进行更替。如图4所示,更替IOT设备绑定的区块链的流程400可以包括:
步骤410,获取运行配置请求及第二数字签名,利用具有配置权限的配置方的公钥验证所述第二数字签名,若验证通过,则将IOT设备绑定的区块链节点的地址更替为运行配置请求中的待绑定区块链地址,否则不更替。
运行配置请求是更替绑定的区块链的请求。在一些实施例中,运行配置请求可以包括待绑定区块链的地址。如前所述,待绑定区块链的地址可以是待绑定区块链中某节点的网络地址。
可以理解,运行配置请求中的待绑定区块链和IOT设备已绑定的区块链(如初始化配置请求中的待绑定区块链)不同。在一些实施例中,运行配置请求的待绑定区块链和已绑定的区块链可以是同一个区块链服务平台中的区块链,也可以是不同区块链服务平台中的区块链。
配置方是具有更替绑定的区块链的权限的平台。在一些实施例中,配置方可以包括区块链服务平台。
步骤420,利用具有配置权限的配置方的公钥验证所述第二数字签名,若验证通过,则将所述IOT设备绑定的区块链的地址更替为所述运行配置请求中的待绑定区块链的地址,否则不更替。
在一些实施例中,IOT设备中的业务应用程序120可以通过网络接收的运行配置请求,并将运行配置请求发送给对链服务程序130,对链服务程序130基于有权限的配置方,如区块链服务平台,的公钥验证第四数字签名,若验证通过,则说明该运行配置请求是由区块链服务平台发起,该请求中的待绑定区块链具有合法性,IOT设备可以将已绑定的区块链的地址更替为运行配置请求中的待绑定区块链的地址,否则不更替。
第二数字签名是由配置方基于运行配置请求产生的证明其身份的字符串。具体地,配置方可以通过单向散列算法(hash运算)处理运行配置请求得到数字摘要,再利用其私钥对数字摘要加密得到第二数字签名。
相应的,IOT设备可以基于运行配置请求生成数字摘要,利用具有配置权限的配置方的公钥解密第二数字签名,得到解密结果;将数字摘要与解密结果进行比较,若一致,则验证通过。
例如,有配置权限的配置方是待绑定区块链的区块链服务平台,则IOT设备中的对链SDK可以通过单向散列算法对接收的运行配置请求进行处理得到数字摘要,再利用待绑定区块链的区块链服务平台的公钥解密第二数字签名得到解密结果,将解密结果与摘要比较,一致则验证通过。
应当注意的是,上述有关各流程的描述仅仅是为了示例和说明,而不限定本说明书的适用范围。对于本领域技术人员来说,在本说明书的指导下可以对流程进行各种修正和改变。然而,这些修正和改变仍在本说明书的范围之内。
本说明书实施例可能带来的有益效果包括但不限于:(1)本说明书将IOT设备采集的数据直接写入区块链,降低了IOT设备采集的数据被恶意篡改的风险,同时可以提高区块链数据的存储效率;(2)基于IOT设备可信执行环境中的公私钥对,可以对IOT设备采集的信息数据进行验证,从而确保物联网数据的完整性和安全性;(3)IOT设备投入使用后可以对绑定的区块链进行更替,同时对用于区块链更替的配置请求进行验证,通过IOT设备和区块链服务平台的双向验证确保替换绑定的区块链的合法性。
需要说明的是,不同实施例可能产生的有益效果不同,在不同的实施例里,可能产生的有益效果可以是以上任意一种或几种的组合,也可以是其他任何可能获得的有益效果。
上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本说明书的限定。虽然此处并没有明确说明,本领域技术人员可能会对本说明书进行各种修改、改进和修正。该类修改、改进和修正在本说明书中被建议,所以该类修改、改进、修正仍属于本说明书示范实施例的精神和范围。
同时,本说明书使用了特定词语来描述本说明书的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本说明书至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本说明书的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
此外,本领域技术人员可以理解,本说明书的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们的任何新的和有用的改进。相应地,本说明书的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。此外,本说明书的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。
计算机存储介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等,或合适的组合形式。计算机存储介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机存储介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、RF、或类似介质,或任何上述介质的组合。
本说明书各部分操作所需的计算机程序编码可以用任意一种或多种程序语言编写,包括面向对象编程语言如Java、Scala、Smalltalk、Eiffel、JADE、Emerald、C++、C#、VB.NET、Python等,常规程序化编程语言如C语言、Visual Basic、Fortran2003、Perl、COBOL2002、PHP、ABAP,动态编程语言如Python、Ruby和Groovy,或其他编程语言等。该程序编码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机运行、或完全在远程计算机或处理设备上运行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(LAN)或广域网(WAN),或连接至外部计算机(例如通过因特网),或在云计算环境中,或作为服务使用如软件即服务(SaaS)。
此外,除非权利要求中明确说明,本说明书所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本说明书流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本说明书实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的处理设备或移动设备上安装所描述的系统。
同理,应当注意的是,为了简化本说明书披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本说明书实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本说明书对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
一些实施例中使用了描述成分、属性数量的数字,应当理解的是,此类用于实施例描述的数字,在一些示例中使用了修饰词“大约”、“近似”或“大体上”来修饰。除非另外说明,“大约”、“近似”或“大体上”表明所述数字允许有±20%的变化。相应地,在一些实施例中,说明书和权利要求中使用的数值参数均为近似值,该近似值根据个别实施例所需特点可以发生改变。在一些实施例中,数值参数应考虑规定的有效数位并采用一般位数保留的方法。尽管本说明书一些实施例中用于确认其范围广度的数值域和参数为近似值,在具体实施例中,此类数值的设定在可行范围内尽可能精确。
针对本说明书引用的每个专利、专利申请、专利申请公开物和其他材料,如文章、书籍、说明书、出版物、文档等,特此将其全部内容并入本说明书作为参考。与本说明书内容不一致或产生冲突的申请历史文件除外,对本说明书权利要求最广范围有限制的文件(当前或之后附加于本说明书中的)也除外。需要说明的是,如果本说明书附属材料中的描述、定义、和/或术语的使用与本说明书所述内容有不一致或冲突的地方,以本说明书的描述、定义和/或术语的使用为准。
最后,应当理解的是,本说明书中所述实施例仅用以说明本说明书实施例的原则。其他的变形也可能属于本说明书的范围。因此,作为示例而非限制,本说明书实施例的替代配置可视为与本说明书的教导一致。相应地,本说明书的实施例不仅限于本说明书明确介绍和描述的实施例。