用于IOT装置的分散式数据存储和处理的制作方法

文档序号:18192275发布日期:2019-07-17 05:38阅读:346来源:国知局
用于IOT装置的分散式数据存储和处理的制作方法

本申请要求于2016年12月30日提交的nedm.smith等人的题目为“theinternetofthings(物联网)”的美国专利临时申请序列号62/441,070的申请日的权益,并且所述美国专利临时申请通过引用结合于此。

本技术总体上涉及物联网(iot)装置。更具体地,本技术涉及可以执行遥感和致动功能的装置。



背景技术:

互联网的当前视图是将客户端(诸如个人计算机、平板计算机、智能电话、服务器、数码相框和许多其他类型的装置)连接到服务器群中托管的可公开访问的数据中心。然而,此视图表示全球连网网络的总体使用情况的一小部分。目前存在非常大量的、但不可公开访问的连接资源。示例包括企业网络、私有组织控制网络和跨越全球的监控网络,通常使用点对点型中继器来匿名。

据估计,到2020年,物联网(iot)可能会为超过150亿台装置带来互联网连接。对于组织,iot装置可以提供监测、跟踪或控制其他装置和物品的机会,所述其他装置和物品包括其他iot装置、其他家庭和工业装置、制造和食品生产链中的物品等。iot网络的出现成为推动互联网演变发生深刻变化的催化剂。在未来,互联网很可能从主要以人为本的公用事业演变为基础设施,在这个基础设施中,人类可能最终成为互连装置世界中的少数参与者。

在这个视图中,互联网将成为装置和装置网络的通信系统,从而不仅与数据中心通信而且与彼此通信。装置可以形成功能性网络或虚拟装置以执行功能,一旦执行完功能,这些功能性网络或虚拟装置就可以解散。在实现可靠、安全且可标识的装置方面存在挑战,这些装置可以根据需要形成网络以完成任务。

附图说明

图1是根据一些实施例的可以存在于互联网中的互连的图。

图2是根据一些实施例的针对通过骨干链路耦合至网关的多个物联网(iot)网络的网络拓扑的图。

图3是根据一些实施例的与多个iot装置通信的云计算网络或云的图。

图4是根据一些实施例的与iot装置的网状网络通信的云计算网络或云的图,所述iot装置可以被称为雾装置、在云边缘操作。

图5是展示根据一些实施例的跨公共域、私密域、和公共-私密域的互操作性的示意图。

图6是根据一些实施例的跨有线网络和无线网络的异构网络的互操作性的示意图。

图7是根据一些实施例的异构网络的分布式内容分发系统的示意图。

图8是根据一些实施例的用于分散式内容分发的示例方法的处理流程图。

图9是根据一些实施例的可以存在于iot装置中用于实施分布式内容分发系统的组件的示例的框图。

图10是根据一些实施例的包括用于引导处理器实施分布式内容分发系统的代码的非暂态机器可读介质的框图。

图11是根据一些实施例的使用布隆过滤器跳转来发现资源的过程的示意图。

图12是根据一些实施例的使用dht来进行资源发现的示例方法的处理流程图。

图13是根据一些实施例的可以存在于iot装置中用于将来自ip网状网络中的不同节点的多个部分密钥组装成单个完整密钥的组件的示例的框图。

图14是根据一些实施例的包括用于引导处理器使用布隆过滤器跳转方法来进行资源发现的代码的非暂态机器可读介质的框图。

图15是根据一些实施例的用于使用本机分散式数据库配置和操作共识网络的过程的示意图。

图16是根据一些实施例的使用本机分散式数据库在共识网络内加入和操作的示例方法的处理流程图。

图17是根据一些实施例的可以存在于iot装置中用于加入和操作分散式数据库的组件的示例的框图。

图18是根据一些实施例的包括用于引导处理器加入和操作分散式数据库的代码的非暂态机器可读介质的框图。

图19示出了根据一些实施例的由iot装置在分布式神经网络映射和资源管理中使用的示例方法的处理流程图。

图20是根据一些实施例的用于资源管理的分布式神经网络映射的示意图。

图21是根据一些实施例的可以存在于iot装置中用于分布式神经网络映射和资源管理的组件的示例的框图。

图22是根据一些实施例的包括用于报告网络和网络装置的健康状况的代码的非暂态机器可读介质的框图。

图23是根据一些实施例的与网络层级结构中的级别相关联的区块链的层级结构的示意图。

图24是根据一些实施例的用于构造区块链层级结构的示例方法的处理流程图。

图25是根据一些实施例的关于图23描述的默克尔树的展开图。

图26是根据一些实施例的用于使用默克尔树索引来搜索区块链层级结构的示例方法的处理流程图。

图27是根据一些实施例的存储在云服务器中的高速缓存默克尔树的示意图。

图28示出了根据一些实施例的在如关于图23所描述的iot网络级别h1处的分布式默克尔树高速缓存的示意图。

图29是根据一些实施例的用于维持具有一致性的分布式高速缓存的技术的示意图。

图30是根据一些实施例的用于为区块链层级结构构造一致性高速缓存的示例方法的处理流程图。

图31是根据一些实施例的用于维护区块链层级结构的一致性高速缓存的示例方法的处理流程图。

图32是根据一些实施例的可以存在于iot装置中用于实施具有相关联索引的层级区块链的组件的示例的框图。

图33是根据一些实施例的包括用于引导处理器管理用于安全通信的密钥的代码的非暂态机器可读介质的框图。

图34是根据一些实施例的基于布隆过滤器使用发布-订阅(pub-sub)路由的示意图。

图35是根据一些实施例的使用白名单布隆过滤器以允许内容分发的示意图。

图36是根据一些实施例的使用黑名单布隆过滤器以防止内容分发的示意图。

图37是根据一些实施例的用于实施具有用于内容控制的黑名单布隆过滤器或白名单布隆过滤器的发布-订阅的示例方法的处理流程图。

图38是根据一些实施例的可以存在于iot装置中用于实施使用布隆过滤器的发布-订阅内容分发系统的组件的示例的框图。

图39是根据一些实施例的包括用于引导处理器管理使用布隆过滤器进行内容分发的发布-订阅系统的代码的非暂态机器可读介质的框图。

图40是根据一些实施例的具有加密内容的话题通知的示意图。

图41(a)是根据一些实施例的接收包括加密内容的话题通知的一组路由器的示意图。

图41(b)是根据一些实施例的加热其高速缓存以预期订阅方请求加密话题的一组路由器的示意图。

图42是根据一些实施例的用于使用密钥管理通知和加热密钥高速缓存的示例方法的处理流程图。

图43是根据一些实施例的可以存在于iot装置中用于管理具有加密内容的话题通知的组件的示例的框图。

图44是根据一些实施例的包括用于引导处理器管理具有加密内容的话题通知的代码的非暂态机器可读介质的框图。

图45是根据一些实施例的获得话题组密钥的订阅方的示意图。

图46是根据一些实施例的发布方生成订阅布隆过滤器以用于向订阅方通知可用话题的示意图。

图47是根据一些实施例的用于话题加密的示例方法的梯形图。

图48是根据一些实施例的在发布-订阅环境中使用多级安全标签的示意图。

图49是根据一些实施例的用于实施布隆过滤器以便将多级安全策略应用于通知消息的示例方法的处理流程图。

图50是根据一些实施例的可以存在于iot装置中用于管理具有加密内容的话题通知的组件的示例的框图。

图51是根据一些实施例的包括用于引导处理器管理具有加密内容的话题通知的代码的非暂态机器可读介质的框图。

贯穿本公开和附图使用相同的数字来引用相似的组件和特征。100系列的数字指代最初见于图1的特征;200系列的数字指代最初见于图2的特征;依此类推。

具体实施方式

物联网(iot)是一种系统,其中大量计算装置彼此互连并且与通信网络(例如,互联网)互连,以在网络中在非常低的级别处提供诸如数据采集和致动等功能。低级别指示可以位于网络边缘处或附近的装置,例如在网络结束前的最后装置。如本文使用的,iot装置可以包括执行诸如感测或控制等功能的装置,所述装置与其他iot装置和通信网络进行通信。iot装置可以包括被配置用于执行一个或多个功能的自主装置或半自主装置。通常,iot装置可能在存储器、大小或功能方面受到限制,允许针对与较少数量的较大型装置类似的成本来部署更大的数量。然而,iot装置可以是智能电话、膝上型计算机、平板计算机、pc和/或其他较大型装置。进一步地,iot装置可以是虚拟装置,诸如智能电话或其他计算装置上的应用。iot装置可以包括iot网关,用于将iot装置耦合到其他iot装置和云应用,用于数据存储、过程控制等。

iot装置的网络可以包括商业和家庭装置,诸如配水系统、配电系统、流水线控制系统、工厂控制系统、灯开关、恒温器、锁、相机、报警器、运动传感器等。可以通过控制器(诸如计算机、服务器和其他系统)访问iot装置,例如,以控制系统或访问数据。控制器和iot装置可以彼此远程地定位。

互联网可以被配置用于向大量物联网(iot)装置提供通信。因此,如本文所述,针对未来互联网的许多创新被设计用于解决从中央服务器到网关、下到边缘装置对网络层的需求,以不受阻碍地增长、发现相连接资源并使其可获得、并且支持隐藏和划分相连接资源的能力。可以使用任何数量的网络协议和通信标准,其中每个协议和标准被设计用于解决特定目标。进一步地,协议是支持人类可访问服务的结构的一部分,所述服务无论位置、时间或空间如何都运行。这些创新包括服务交付和相关联的基础设施,诸如硬件和软件。可以根据服务级别和服务交付协议中指定的服务质量(qos)条款来提供服务。iot装置和网络的使用在异构的连接网络中提出了许多新的挑战,包括如例如在图1和图2中所描绘的有线和无线技术的组合。

图1是根据一些实施例的可以存在于互联网100与iot网络之间的互连的图。互连可以将较小的网络102、下到单独的iot装置104耦合到互联网100的骨干106。为了简化附图,并非每个装置104或其他对象都被标记。

在图1中,可以被称为层1(“t1”)提供商108的顶级提供商通过互联网的骨干106耦合到其他提供商,诸如二级或层2(“t2”)提供商110。在一些方面,骨干106可包括光纤链路。在一个示例中,t2提供商110可以例如通过另外的链路、通过微波通信114或通过其他通信技术耦合到lte蜂窝网的塔112。塔112可以通过lte通信链路116(例如通过中心节点118)耦合到包括iot装置104的网状网络。各iot装置104之间的通信也可以基于lte通信链路116。

在另一示例中,高速上行链路119可以将t2提供商110耦合到网关120。多个iot装置104可以与网关120通信,并且例如经由蓝牙低功耗(ble)链路122通过网关120彼此通信。

骨干106可以将诸如层3(“t3”)提供商124等较低级别的服务提供商耦合到互联网。t3提供商124可以被认为是例如从t2提供商110购买对骨干106的访问并提供对企业网关126及其他客户的访问的通用互联网服务提供商(isp)。

通过企业网关126,无线局域网(wlan)可以用于通过链路128与iot装置104通信。wi-fi链路128还可以用于耦合到低功率广域(lpwa)网关130,所述lpwa网关可以通过例如可与lora联盟颁布的lorawan规范兼容的lpwa链路132来与iot装置104通信。

t3提供商124还可以通过协调器装置136提供对网状网络134的访问,所述协调器装置使用任何数量的通信链路(诸如lte蜂窝链路、lpwa链路或基于ieee802.15.4标准(诸如)的链路138)与t3提供商124通信。其他协调器装置136可以提供形成链接装置的一个或多个集群树的链接链。

在一些方面,一个或多个iot装置104包括用于与其他装置通信的适当收发机。进一步地,一个或多个iot装置104可以包括其他无线电收发机、光学收发机或声学收发机,以及有线网络接口,用于使用附加协议和频率的通信。在一些方面,一个或多个iot装置104包括关于图9描述的组件。

技术和网络可以促进装置和网络的发展。随着技术发展,可以开发网络用于自我管理、功能演进和/或协作,而无需直接的人为干预。因此,这些技术可以使网络在没有集中控制系统的情况下运行。本文描述的技术可以使网络管理和操作功能自动化超出当前能力。进一步地,这些方法可以提供灵活性以具有在没有人为干预的情况下操作的集中控制、自动化的集中控制或其任何组合。

图2是根据一些实施例的可以用于通过骨干链路202耦合至网关204的多个物联网(iot)网络的网络拓扑200的图。类似编号的项如关于图1所描述的那样。进一步地,为了简化图,并非每个装置104或通信链路116、122、128或132都被标记。骨干链路202可以包括任何数量的有线或无线技术,并且可以是局域网(lan)、广域网(wan)或互联网的一部分。

虽然图2中的拓扑是中心辐射型并且图1中的拓扑是点对点型,但可以观察到这些拓扑没有冲突,而是点对点型节点可以通过网关表现为中心辐射型。在图2中还可以观察到子网拓扑可以具有多个网关,使其成为混合拓扑而不是纯粹的中心辐射型拓扑(或者不是严格的中心辐射型拓扑)。

网络拓扑200可以包括任何数量类型的iot网络,诸如使用蓝牙低功耗(ble)链路122的网状网络206。可能存在的其他iot网络包括wlan网络208、蜂窝网210和lpwa网络212。如本文所述,这些iot网络中的每一个都可以为新开发提供机会。

例如,诸如通过骨干链路202在iot装置104之间的通信可以由用于认证、授权和计费(aaa)的分散式系统保护。在分散式aaa系统中,可以跨互连的异构基础设施实施分布式支付、信贷、审计、授权、代理、仲裁和认证系统。这允许系统和网络走向自主操作。

在这些类型的自主操作中,机器可以签订人力资源合约并与其他机器网络协商合作伙伴关系。这可以允许实现共同目标和平衡的服务交付,而不是概述的、计划的服务级别协议,以及实现提供计量、测量和可追溯性和可跟踪性的解决方案。创建新的供应链结构和方法可以实现创建大量服务、挖掘其价值并在没有任何人为参与的情况下瓦解。

通过将诸如声、光、电子交通、面部和模式识别、气味和振动等感测技术集成到自主组织中,可以进一步增强iot网络。感知系统的集成可以允许服务交付的系统性的且自主的通信和协调,而不是基于合约性服务目标、编制和服务质量(qos)的资源的云集和融合。

网状网络206可以由执行内联数据到信息变换的系统来增强。例如,包括多链路网络的处理资源的自形成链可以以高效的方式分发原始数据到信息的转换。这可以允许诸如第一阶段执行第一数字操作,在将结果传递到另一阶段之前,下一阶段然后执行另一数字操作,并且将所述结果传递到另一阶段之类的功能。所述系统可以提供区分资产和资源以及每个的相关联管理的能力。此外,可以插入基础设施和基于资源的信任和服务索引的适当组件,以改善数据完整性、质量保证并递送数据置信度量。

如本文所述,wlan网络208可以使用执行标准转换的系统来提供多标准连接,使得iot装置104能够使用不同协议进行通信。进一步的系统可以在包括可见互联网资源和隐藏互联网资源的多标准基础设施之间提供无缝互连。

蜂窝网210中的通信可以通过卸载数据、将通信扩展到更远程装置或两者的系统来增强。lpwa网络212可以包括执行到ip互连的非互联网协议(ip)、寻址和路由的系统。

图3是根据一些实施例的与多个物联网(iot)装置通信的云计算网络或云302的图300。云302可以表示互联网,或者可以是局域网(lan)、或广域网(wan),诸如公司的专有网络。iot装置可以包括以各种组合来分组的任何数量的不同类型的装置。例如,交通控制组306可以包括沿着城市中的街道的iot装置。这些iot装置可以包括红绿灯、交通流量监控器、相机、天气传感器等。交通控制组306或其他子组可以通过无线链路308(诸如,lpwa链路等)来与云302进行通信。进一步地,有线或无线子网络312可以允许iot装置彼此通信,诸如通过局域网、无线局域网等。iot装置可以使用诸如网关310等另一装置来与云302进行通信。

iot装置的其他分组可以包括远程气象站314、本地信息终端316、报警系统318、自动柜员机320、报警面板322、或移动车辆,诸如应急车辆324或其他车辆326等。这些iot装置中的每一个都可以与其他iot装置、与服务器304、或与两者进行通信。

如从图3中可以看出,大量iot装置可以通过云302进行通信。这可以允许不同的iot装置自主地向其他装置请求或提供信息。例如,交通控制组306可以从远程气象站组314请求当前天气预报,所述远程气象站组可以在没有人为干预的情况下提供预报。进一步地,可以由自动柜员机320向应急车辆324警告正在发生盗窃。当应急车辆324朝向自动柜员机320前进时,其可以访问交通控制组306以请求准许到达所述位置,例如,通过灯变红以在交叉路口阻止交叉车流足够的时间从而使应急车辆324无阻碍地进入交叉路口。

诸如远程气象站314或交通控制组306等iot装置集群可以被配备成与其他iot装置以及与云302进行通信。这可以允许iot装置在装置之间形成自组织(ad-hoc)网络,允许它们用作单个装置,其可以被称为雾装置。关于图4进一步讨论雾装置。

图4是根据一些实施例的与iot装置的网状网络通信的云计算网络或云302的图400,所述iot装置可以被称为雾装置402、在云302边缘操作。类似编号的项如关于图3所描述的那样。如本文使用的,雾装置402是可以被分组用于执行特定功能,诸如交通控制、天气控制、工厂控制等的装置集群。

在这个示例中,雾装置402包括在交通交叉路口的一组iot装置。雾装置402可以根据由openfog联盟(ofc)等发布的规范来建立。这些规范允许在将雾装置402耦合到云302以及耦合到端点装置(诸如在这个示例中的交通灯404和数据聚合器406)的网关310之间形成计算元件的层级结构。雾装置402可以利用iot装置集合提供的组合的处理和网络资源。因此,雾装置402可以用于任何数量的应用,包括例如金融建模、天气预报、交通分析等。

例如,通过交叉路口的交通流量可以由多个交通灯404(例如,三个交通灯404)控制。对交通流量和控制方案的分析可以由通过网状网络与交通灯404和彼此通信的聚合器406实施。可以通过网关310将数据上传到云302,以及从云302接收命令,所述网关通过网状网络与交通灯404和聚合器406通信。

可以在雾装置402中使用任何数量的通信链路。例如,与ieee802.15.4兼容的短程链路408可以提供靠近交叉路口的iot装置之间的本地通信。例如,与lpwa标准兼容的较长范围链路410可以提供iot装置与网关310之间的通信。为了简化所述图,并非每个通信链路408或410都标有附图标记。

雾装置402可以被认为是大规模互连网络,其中,多个iot装置例如通过通信链路408和410彼此通信。可以使用由openconnectivityfoundationtm(ocf)于2015年12月23日发布的开放互连协会(oic)标准规范1.0来建立网络。这个标准允许装置发现彼此并且建立互连通信。也可以使用其他互连协议,包括例如,来自allseen联盟的alljoyn协议、优化的链路状态路由(olsr)协议、或用于移动自组连网的更好方法(b.a.t.m.a.n.)等。

在一些方面,来自一个iot装置的通信可以沿着最方便的路径传递以到达网关310,例如,具有最少数量的中间跳数或最高带宽等的路径。在这些网络中,互连的数量提供了大量的冗余,从而允许即使丢失了许多iot装置也可以维持通信。

在一些方面,雾装置402可包括临时iot装置。换句话说,并非所有iot装置都可以是雾装置402的永久成员。例如,在示例性系统400中,三个瞬态iot装置已经加入雾装置402、第一车辆412、第二车辆414和行人416。在这些情况下,iot装置可以内置在车辆412和414中,或者可以是由行人416携带的智能电话上的应用。还可以存在其他iot装置,诸如自行车计算机、摩托车计算机、无人机等中的iot装置。

由iot装置形成的雾装置402可以被呈现给云302中的客户端,诸如服务器304,作为位于云302的边缘的单个装置。在这个示例中,可以在雾装置402内没有标识任何特定iot装置的情况下发生到雾装置402中的特定资源的控制通信。因此,如果雾装置402内的一个iot装置发生故障,则雾装置402中的其他iot装置可能能够发现和控制资源,所述资源诸如致动器或附接到iot装置的其他装置。例如,交通灯404可以是有线的,以便允许任何一个交通灯404控制其他交通灯404的灯。聚合器406还可以在交通灯404的控制下以及雾装置402的其他功能中提供冗余。

在一些示例中,可以使用命令式编程风格来配置iot装置,例如,每个iot装置具有特定功能和通信伙伴。然而,可以以声明性编程风格来配置形成雾装置402的iot装置,以便允许iot装置重新配置它们的操作和通信,诸如以响应于条件、查询和装置故障来确定所需的资源。这可以在诸如行人416的瞬态iot装置加入雾装置402时执行。

由于行人416可能比车辆412和414行进得更慢,因此雾装置402可以重新配置自身以确保行人416有足够的时间使其通过交叉路口。这可以通过形成车辆412和414以及行人416的临时组以控制交通灯404来执行。如果车辆412或414中的一个或两个是自主的,则临时组可以指导车辆在交通灯404之前减速。进一步地,如果交叉路口处的所有车辆都是自主的,则可能减少对交通信号的需求,因为自主车辆的防撞系统可能允许高度交叉的交通模式,这对于交通灯来说可能太复杂而无法管理。然而,交通灯404对于行人416、骑车人或非自主车辆仍然可以是重要的。

当瞬态装置412、414和416离开雾装置402的交叉路口附近时,雾装置402可以重新配置其自身以从网络中消除那些iot装置。当其他瞬态iot装置接近交叉路口时,雾装置402可以将其自身重新配置为包括那些装置。

雾装置402可以包括用于多个交叉路口的诸如沿着街道的交通灯404,以及沿着街道的所有瞬态iot装置。雾装置402然后可以将其自身分成功能性单元,诸如交通灯404和靠近单个交叉路口的其他iot装置。这种类型的组合可以使得能够在雾装置402中形成更大的iot构造,例如,执行具体功能的iot装置组。

例如,如果应急车辆加入雾装置402,则可以创建应急构造或虚拟装置,其包括街道的所有交通灯404,从而允许控制整个街道的交通流量模式。应急构造可以指导沿着街道的交通灯404保持红色以用于反向交通,并且绿色用于应急车辆从而加速应急车辆的通过。

如雾装置402所示,iot网络的有机演变是改进或最大化iot实施方式的效用、可用性和回弹性的中心。进一步地,所述示例表明了用于提高可信度并因此提高安全性的策略的有用性。装置的本地标识在实施方式中可能是重要的,因为身份的分散化确保不能利用中心机构来允许对可能存在于iot网络内的对象进行模仿。进一步地,本地标识降低了通信开销和时延。

区块链可以用于分散标识,因为它们可以在装置之间提供关于当前使用的名称和身份的协议。如本文使用的,区块链是由数据结构块组成的身份记录的分布式数据库。进一步地,如本文使用的,条款区块链可以包括其他分布式分类账系统中的任何一个或多个。其他分布式分类账方法包括瑞波(ripple)、超级分类账、多链、无钥签名基础设施等。每个数据结构块基于事务,其中下发装置、复合装置或虚拟装置的新名称是事务的一个示例。

使用区块链进行标识,可以通过观察名称和身份的重新下发来检测模仿,而无需相应的终止。公共区块链可能是最有用的,因为它们可以使得不同的观察者团体能够检测错误命名、恶意命名或命名基础设施故障。因此,可信任身份基础设施可以是信任iot网络的中心。

图5是根据一些实施例展示跨公共域502、私密域504、和公共-私密域506的互操作性的示意图502。网络拓扑可能处于连续的变化状态,使得永久映射的任何尝试都不可能。因此,iot装置可以使用如域名称服务器(dns)等骨干资源来在域之间发送分组。分组可以通过如路由器508所示出的互联网骨干网在域502、504和506之间路由。

在一些方面,路由器508提供将域彼此耦合的边缘连接。如本文所描述的,可以在域502、504和506的边缘处提供任何数量的服务以增强互连性。例如,公共域502与私密域504之间的互连可以为域访问、针对域访问的显示许可和跟踪、以及公共和私有通信量的分离等提供小额支付的机会。类似地,公共域502与公共-私密域506之间的互连可以为如基于时间的租用、资源市场、以及分布式身份服务器等服务提供机会。私密域504和公共-私密域506之间的互连可以为内联服务互连、基于行为的威胁分析、以及证据来源等提供机会。

图6是根据一些实施例的跨具有有线网络602以及无线网络604和606的异构600网络的互操作性的示意图。无线网络604和606可以通过有线网络602中的装置通信地耦合。这为无线网络604和606中的装置之间的通信的效率改进、以及无线网络604或606中的装置与有线网络602中的装置之间的通信的改进提供了机会。例如,将第一无线网络604耦合至有线网络602的边缘装置608可以提供用于信息变换的数据以减小有效载荷的大小。进一步地,边缘装置608可以具有允许来自第一无线网络604的分组通过同时阻止未经许可的分组传送的许可系统。许可系统可以包括用于使小额支付允许信息跨有线网络602移动的系统。作为示例,第一无线网络604可以是农业现场的地面湿度传感器阵列。报告频率可以取决于变化率,这可能由于需要购买带宽以匹配最高报告率而增加成本。因此,小额支付系统可以通过允许按需支付事务来降低成本。

几乎所有在网络周围存储和递送信息的方法都使用推送或拉出的方法。推送通常可以等同于网关或基站向所有连接的基节点的广播。这种类型的模型还经常用于发布/订阅模型,其中装置经由作为发送数据的手段的信道发送数据。进一步地,大多数模型使用其中端点广播的数据所来自(推送)的中心服务器、或所述数据从中拉出的内容服务器。关于图7至图10所描述的技术,使用推送和拉出的组合来跨网络分发内容。

图7是根据一些实施例的异构网络的分布式内容分发系统700的示意图。使用所述分布式内容分发系统700可以实现跨异构网络的分发,这可能是有损的或具有间歇性连接。此外,其可以实现以无状态方式分发数据。分布式内容分发系统700中的一个或多个iot装置或节点702具有负责管理节点上的数据的数据管理器704。数据管理器704具有多个子系统,包括可以对穿过分布式内容分发系统700的入站数据708和出站数据710进行分类的数据分类器706。其对数据使用三种主要分类:入站、出站和高速缓存。

在一些方面,数据映射器712负责将所分类数据映射到系统上的物理位置。数据映射器712可以使用如散列函数等算法来确定数据的最佳位置。数据分类器706与资源管理器714通信以确定出站数据和高速缓存数据的分类。入站数据708是旨在由节点本身消耗的数据。所述数据映射器712将数据传送到收件箱716,并且资源管理器714监测对收件箱716的改变或更新。

出站数据710可以由节点702以大于一跳的距离共享,并且由资源管理器714确定。所述出站数据710可以存储在发件箱718中。资源管理器714通过计算节点702处的当前资源可用性(如功率和网络节点计数)来计算跳数。

高速缓存的数据被保存在高速缓存720中,并且是已经被确定为对节点702有用的数据。数据历史库722可以跟踪移入和移出节点702的数据,如入站数据请求和出站数据请求。例如,协议管理器724可以基于特定帧使用的通信信道来管理用于传入帧和传出帧的协议。网络管理器726可以处置各种通信信道上的网络通信,例如,托管网络栈。通信管理器728可以处置物理级操作或phy操作,如无线电、网络接口控制器等。

图8是根据一些实施例的用于分散式内容分发的示例方法800的处理流程图。图8的方法800可以由关于图7和图9所描述的iot装置702实施。在框802处,对数据进行分类。这是通过将穿过系统的一条或多条入站数据和出站数据分类为例如入站数据、出站数据、和高速缓存数据来执行的。

在框804处,将所分类的数据映射到系统上的正确物理位置。例如,如框806所指示的,这可以使用算法来执行以生成标识入站数据位置的散列码。

在框808处,判定数据是否入站。如果是,则在框810处本地存储数据。在框812处,检查散列密钥。在框814处,判定散列密钥是否处于本地存储装置816中。如果否,则在框818处,本地存储新的数据片段。然后处理流程返回到框802。

如果在框814处确定密钥处于本地存储装置816中,则在框820处,判定是否应该忽略所述信息,例如,如果其与本地存储装置816中的先前信息相同的话。如果是,则处理流程返回至框802。如果否,则用新片段更新本地存储装置816中的数据,并且处理流程返回到框802。

如果在框808处,确定数据是出站数据,则在框824处,计算最大跳数。这被称为生存时间(ttl),并且可以通过计算节点处的当前资源可用性(如功率、网络节点计数)来确定。在框826处,将数据分派或推送至目标节点。

目标节点还可以通过请求来自一跳的节点的数据来拉出数据。数据拉出请求可以具有ttl,其以跳计数(即,当分组遍历网络时的跳数)来测量,其中ttl在每一跳之后递减。当ttl达到零计数时,数据片段无效。可以以绝对时间来测量ttl,例如,以秒、分钟、或小时为单位,其中当超时到期时数据片段无效。如果在超时内没有收到拉出请求,则其可以将请求推送到节点,然后可以通过系统转发所述节点。

在框826处,判定是否继续所分发的内容共享。如果是,则在框802处恢复处理流程。

每个节点都可以跟踪数据历史库中接收到的入站请求和出站请求。可以为所有请求维护高速缓存窗口。频率可以由多种因素确定,如某个时间段内的请求数。

所述装置还通过应用所访问的计数器和计时器来自我管理其高速缓存大小,以判定高速缓存数据的访问频率。如果频繁访问数据,则可以增加高速缓存,并且如果访问频率较低,则可以减少高速缓存。每个节点还将判定其是否可以经由数据管理器推送或拉出数据。

图9是可以存在于用于实现根据一些实施例的分布式内容分发系统的iot装置900(或iot装置702)中的组件的示例的框图。iot装置900(或702)可以包括示例中示出的组件的任何组合。组件可以实施为ic、其一部分、分立电子器件,或者在iot装置900(或702)中适配的其他模块、逻辑、硬件、软件、固件或其组合,或者作为以其他方式并入较大系统的机箱内的组件。图9的框图旨在示出iot装置900和iot装置702的组件的高级视图。然而,可以省略所示组件中的一些,可以存在附加的组件,并且在其他实施方式中可以出现所示组件的不同安排。

同样的附图标记标注的项如参照图3和图7所描述。可以注意,可选择并使用不同组件用于iot装置900,而与用于本文中讨论的其他iot装置的那些组件不同。

iot装置900或702可以包括处理器902,所述处理器可以是微处理器、多核处理器、多线程处理器、超低电压处理器、嵌入式处理器或其他已知处理元件。处理器902可以是片上系统(soc)的一部分,其中处理器902和其他组件形成为单个集成电路或单个封装体,诸如来自intel的edisontm或galileotmsoc板。作为示例,处理器902可以包括基于架构核心tm的处理器,诸如quarktm、atomtm、i3、、i5、i7或mcu级处理器,或者可从加利福尼亚州圣克拉拉市的公司获得的另一此类处理器。然而,可以使用任何数量的其他处理器,诸如可从加利福尼亚州森尼维耳市的超威半导体公司(advancedmicrodevices,inc.,amd)获得的、来自加利福尼亚州森尼维耳市的mips科技公司的基于mips的设计、由arm控股有限公司或其客户或其许可证持有人或采用者许可的基于arm的设计。处理器可以包括诸如来自公司的a5-a9处理器,来自科技公司的snapdragontm处理器、或来自德州仪器公司的omaptm处理器之类的单元。

处理器902可以通过总线906与系统存储器904通信。可以使用任何数量的存储器装置来提供给定量的系统存储器。作为示例,存储器可以是根据联合电子器件工程委员会(jedec)的基于低功率双倍数据速率(lpddr)的设计的随机存取存储器(ram),诸如根据jedecjesd209-2e的当前lpddr2标准(发布于2009年4月)、或下一代lpddr标准,诸如将提供lpddr2的扩展以增加带宽的lpddr3或lpddr4。在各实施方式中,各个存储器装置可以是任何数量的不同封装体类型,诸如单管芯封装体(sdp)、双管芯封装体(ddp)或四管芯封装体(q17p)。在一些实施例中,这些装置可以直接焊接到母板上以提供较低简档的解决方案,而在其他实施例中,这些装置被配置为一个或多个存储器模块,这些存储器模块进而通过给定的连接器耦合到母板。可以使用任何数量的其他存储器实施方式,诸如其他类型的存储器模块,例如,不同种类的双列直插式存储器模块(dimm),包括但不限于microdimm或minidimm。例如,存储器的大小可以在2gb与16gb之间,并且可以配置为ddr3lm封装体或lpddr2或lpddr3存储器,其通过球栅阵列(bga)焊接到母板上。

为了提供诸如数据、应用、操作系统等信息的持久存储,大容量存储装置908还可以经由总线906耦合到处理器902。为了实现更薄更轻的系统设计,可以通过固态驱动器(ssd)来实施大容量存储装置908。可以用于大容量存储装置908的其他装置包括闪存卡,诸如sd卡、microsd卡、xd图卡等,以及usb闪存驱动器。

在低功率实施方式中,大容量存储装置908可以是管芯上存储器或与处理器902相关联的寄存器。然而,在一些示例中,大容量存储装置908可以使用微硬盘驱动器(hdd)来实施。进一步地,除了所描述的技术之外或代替所描述的技术,任何数量的新技术可以用于大容量存储装置908,诸如电阻变化存储器、相变存储器、全息存储器或化学存储器等。例如,iot装置900(或iot装置702)可以结合来自的3dxpoint存储器。

组件可以通过总线906进行通信。总线906可以包括任何数量的技术,包括工业标准架构(isa)、扩展isa(eisa)、外围组件互连(pci)、外围组件互连扩展(pcix)、pciexpress(pcie)或任何数量的其他技术。总线906可以是例如在基于soc的系统中使用的专有总线。可以包括其他总线系统,诸如i2c接口、i3c接口、spi接口、点对点型接口、和电源总线等。

总线906可以将处理器902耦合到网状收发机910,用于与其他网状装置912通信。网状收发机910可以使用任何数量的频率和协议,诸如ieee802.15.4标准下的2.4千兆赫(ghz)传输,使用由特别兴趣小组定义的低功耗(ble)标准、或标准等。为具体无线通信协议配置的任何数量的无线电可以用于到网状装置912的连接。例如,wlan单元可用于根据电气和电子工程师协会(ieee)802.11标准来实施wi-fitm通信。另外,例如,根据蜂窝或其他无线广域协议的无线广域通信可以经由wwan单元发生。

网状收发机910可以使用多个标准或无线电进行通信以用于不同范围的通信。例如,iot装置900(或iot装置702)可以使用基于ble的本地收发机或另一低功率无线电与地理上邻近的装置(例如,在约10米内)通信以节省功率。可以通过zigbee或其他中间功率无线电到达更远的网状装置912,例如,在约50米内。两种通信技术可以以不同功率水平在单个无线电上发生、或者可以在单独的收发机(例如,使用ble的本地收发机和使用zigbee的单独网状收发机)上发生。网状收发机910可以并入mcu中作为可由芯片(诸如可从intel获得的单元)直接访问的地址。

可以包括上行链路收发机914以与云302中的装置通信。上行链路收发机914可以是遵循ieee802.15.4、ieee802.15.4g、ieee802.15.4e、ieee802.15.4k或nb-iot标准等的lpwa收发机。iot装置900(或iot装置702)可以使用由semtech和lora联盟开发的lorawantm(长距离广域网)在广泛区域上进行通信。本文描述的技术不限于这些技术,而是可以与实施长距离、低带宽通信的任何数量的其他云收发机一起使用,诸如sigfox和其他技术。进一步地,可以使用ieee802.15.4e规范中描述的其他通信技术,诸如时隙信道跳变。

除了针对网状收发机910和上行链路收发机914所提到的系统之外,还可以使用任何数量的其他无线电通信和协议,如本文所述。例如,无线电收发机910和912可以包括lte或其他蜂窝收发机,其使用扩频(spa/sas)通信来实施高速通信,诸如用于视频传输。进一步地,可以使用任何数量的其他协议,诸如用于中速通信的网络,诸如静止图片、传感器读数和网络通信的提供。

无线电收发机910和912可以包括与任何数量的3gpp(第三代合作伙伴计划)规范兼容的无线电,特别是长期演进(lte)、长期演进-高级(lte-a)、长期演进-高级专业版(lte-apro)、或窄带iot(nb-iot)等。可以注意到,可以选择与任何数量的其他固定、移动或卫星通信技术和标准兼容的无线电。这些可以包括例如任何蜂窝广域无线电通信技术,其可以包括例如第五代(5g)通信系统、全球移动通信系统(gsm)无线电通信技术、通用分组无线电服务(gprs)无线电通信技术、或gsm演进的增强型数据率(edge)无线电通信技术。可以使用的其他第三代合作伙伴计划(3gpp)无线电通信技术包括umts(通用移动电信系统)、foma(自由移动的多媒体接入)、3gpplte(长期演进)、3gpplte-高级(长期演进-高级)、3gpplte-高级专业版(长期演进-高级专业版)、cdma2000(码分多址2000)、cdpd(蜂窝数字分组数据)、mobitex、3g(第三代)、csd(电路交换数据)、hscsd(高速电路交换数据)、umts(3g)(通用移动电信系统(第三代))、w-cdma(umts)(宽带码分多址(通用移动电信系统))、hspa(高速分组接入)、hsdpa(高速下行链路分组接入)、hsupa(高速上行链路分组接入)、hspa+(高速分组接入plus)、umts-tdd(通用移动电信系统-时分双工)、td-cdma(时分-码分多址)、td-scdma(时分-同步码分多址)、3gpprel。8(pre-4g)(第3代合作伙伴计划发布8(第pre-4代)),3gpprel。9(第三代合作伙伴计划发布9),3gpprel。10(第三代合作伙伴计划发布10),3gpprel。11(第三代合作伙伴计划发布11),3gpprel。12(第三代合作伙伴计划发布12),3gpprel。13(第三代合作伙伴计划发布13),3gpprel。14(第三代合作伙伴计划发布14)、3gpplteextra、lte授权辅助接入(laa)、utra(umts陆地无线电接入)、e-utra(演进型umts陆地无线电接入)、lte高级(4g)(长期演进-高级(第4代))、cdmaone(2g)、cdma2000(3g)(码分多址2000(第三代))、ev-do(演进-数据优化或演进-仅数据)、amps(1g)(高级移动电话系统(第1代))、tacs/etacs(总接入通信系统/扩展总接入通信系统)、d-amps(2g)(数字amps(第2代))、ptt(按键通话)、mts(移动电话系统)、imts(改进型移动电话系统)、amts(高级移动电话系统)、olt(挪威语“offentliglandmobiltelefoni”,公共陆地移动电话)、mtd(瑞典语mobiltelefonisystemd的缩写,或移动电话系统d)、autotel/palm(公共自动陆地移动)、arp(芬兰语“autoradiopuhelin”,“汽车无线电话”)、nmt(北欧移动电话)、hicap(ntt(日本电报电话公司)的高容量版本)、cdpd(蜂窝数字分组数据)、mobitex、datatac、iden(集成数字增强网络)、pdc(个人数字蜂窝)、csd(电路交换数据)、phs(个人手持电话系统)、widen(宽带集成数字增强网络)、iburst、非授权移动接入(uma,也称为3gpp通用接入网络,或gan标准)、无线吉比特联盟(wigig)标准、一般的mmwave标准(无线系统在10-90ghz及以上运行,诸如wigig、ieee802.11ad、ieee802.11ay等)。除了上面列出的标准之外,可以将任何数量的卫星上行链路技术用于上行链路收发机914,包括例如符合itu(国际电信联盟)或etsi(欧洲电信标准协会)发布的标准的无线电等等。因此,本文提供的示例被理解为适用于现有的且尚未明确表达的各种其他通信技术。

可以包括网络接口控制器(nic)916以向云302或其他装置(例如网状装置912)提供有线通信。有线通信可提供以太网连接,或者可以基于其他类型的网络,诸如控制器区域网络(can)、本地互连网络(lin)、设备网(devicenet)、控制网(controlnet)、数据高速通道+、过程现场总线(profibus)或过程现场网(profinet)等。可以包括附加的nic916以允许连接到第二网络,例如,通过以太网提供到云的通信的nic916、以及通过另一种类型的网络提供到其他装置的通信的第二nic916。

总线906可以将处理器902耦合到用于连接外部装置的接口918。外部装置可以包括传感器920,诸如加速计、水平传感器、流量传感器、温度传感器、压力传感器、气压传感器等。接口918可用于将iot装置900(或iot装置702)连接到致动器922,诸如电源开关、阀门致动器、可听声音生成器、视觉警告装置等。

虽然未示出,但是各种输入/输出(i/o)装置可以存在于iot装置900(或iot装置720)内或连接到所述iot装置。例如,可以包括显示器以示出诸如传感器读数或致动器位置等信息。可以包括诸如触摸屏或小键盘等输入装置以接受输入。

电池924可以为iot装置900(或iot装置720)供电,但是在iot装置900(或iot装置702)安装在固定位置的示例中,它可以具有耦合到电网的电源。电池924可以是锂离子电池、金属-空气电池,诸如锌-空气电池、铝-空气电池、锂-空气电池、混合型超级电容器等。

电池监测器/充电器926可以包括在iot装置900(或iot装置702)中以跟踪电池920的充电状态(soch)。电池监测器/充电器926可用于监测电池924的其他参数,以提供故障预测,诸如电池924的健康状态(soh)和功能状态(sof)。电池监测器/充电器926可以包括电池监测集成电路,诸如来自凌力尔特公司(lineartechnologies)的ltc4020或ltc2990、来自美国亚利桑那州凤凰城的安森美半导体公司(onsemiconductor)的adt7488a、或来自德克萨斯州达拉斯市的德州仪器的ucd90xxx族的ic。电池监测器/充电器926可以通过总线906将关于电池924的信息传送到处理器902。电池监测器/充电器926还可以包括模数(adc)转换器,所述模数转换器允许处理器902直接监测电池926的电压或来自电池924的电流。电池参数可以用于确定iot装置900(或iot装置702)可以执行的动作,诸如传输频率、网状网络操作、感测频率等。

电源块928或耦合到电网的其他电源可以与电池监测器/充电器926耦合以对电池924充电。在一些示例中,电源块928可以用无线功率接收器代替,以例如通过iot装置900(或iot装置702)中的环形天线无线地获得功率。无线电池充电电路(诸如来自加利福尼亚州米尔皮塔斯市的凌力尔特公司的ltc4020芯片等)可以包括在电池监测器/充电器926中。所选择的特定充电电路取决于电池924的尺寸,并且因此取决于所需的电流。可以使用由airfuel联盟颁布的airfuel标准、由无线电力联盟(wirelesspowerconsortium)颁布的qi无线充电标准、或者由无线电力联盟颁布的rezence充电标准等来执行充电。在一些示例中,电源块928可以用太阳能电池板、风力发电机、水发电机或其他自然电力系统来增强或代替。

大容量存储装置908可以包括用于实施本文所描述的联盟小组形成的多个模块。尽管在大容量存储装置908中示出为代码块,但是可以理解,任何模块都可以完全或部分地用例如内置在专用集成电路(asic)中的硬连线电路替换。

大容量存储装置908可以包括关于图7所描述的模块。如收件箱716、发件箱718、高速缓存720、以及数据历史库722等数据存储装置932可以包括在大容量存储装置908中,或可以存储在其他位置中,如另一个装置上的存储器。

大容量存储装置908可以包括通信器930,其通过一个或多个通信链路例如通过网状收发机910、上行链路收发机914、和nic916等向网状装置912或云302中的装置发送分组或接收来自所述网状装置或所述云中的装置的帧。除了关于图9所描述的功能之外,通信器930可以执行如协议之间的分组转换、执行证据来源添加等其他功能。进一步地,通信器930可以是缓解系统的一部分。

图10是根据一些实施例的包括用于引导处理器1002形成组对象的代码的示例性非暂态机器可读介质1000的框图。处理器1002可以通过总线1004访问非暂态机器可读介质1000。处理器1002和总线1004可以选择为如关于图9所描述的处理器902和总线906所述。非暂态机器可读介质1000可以包括针对图9的大容量存储装置908所描述的装置,或者可以包括光盘、拇指驱动器、或任何数量的其他硬件装置。

非暂态机器可读介质1000可以包括代码1006,以将穿过分布式内容分发系统的数据分类为入站数据、出站数据、或高速缓存数据。可以包括代码1008以引导处理器1002将所分类的数据映射到系统上的物理位置。代码1008可以引导处理器1002确定数据的最佳位置。代码1010可以引导处理器1002计算数据的散列函数。可以包括代码1012以引导处理器1002判定散列密钥是否处于本地存储装置中。

可以包括代码1014以引导处理器1002在本地存储新的数据片段。可以包括代码1016以更新本地存储的数据片段。可以包括代码1018以引导处理器计算数据片段的生存时间,例如,删除前的跳数、或删除前的时间量、或两者。可以包括代码1020以将数据分派给其他节点,例如,以帧为单位。可以基于用于发送帧的通信信道来选择用于帧的协议。

为了参与网络,需要数据或资源的装置或代理可以搜索网络和其他互连网络来获取数据或资源。如本文所使用的,数据可以是完成当前装置中的功能所需的任何数据,如十字路口控制器的距离交通流量。资源包括可以用于完成任务的任何功能,所述任务如在上游系统上运行的预测模型或用于执行本地功能的代码等。然而,网络查询泛滥可能会导致网络通信过载,并且可能会导致能量受限装置的问题。进一步地,集中化网络可能容易受到分布式拒绝服务(ddos)攻击。使用分类账或区块链认证的信贷可以帮助减轻网络负载并且允许对象更好地管理其资源,以及降低网络受分布式拒绝服务攻击(ddos)的风险。

为了更好地组织用于跟踪的资源,可以将资源分布在如kademlia等基于分布式散列表(dht)的网络中。在由n个节点组成的kademlia网络中,发现网络中的任何节点都将花费最大o(log(n))跳数。另外地,这种网络使用k桶概念,所述k桶概念实际上意味着网络中的节点对其自己的邻居很了解并且因此其本地k桶将具有大量节点。然而,在一些情况下,节点之间距离越远,将出现的节点就越少,这表明具有较低k值的k桶将具有较少节点。

应注意,当前区块链技术可以构建默克尔散列树作为索引到区块链中的具体块的方式。如果已知区块散列,则所述区块可以有效位于区块存储库中。这可以看做是dht的一种形式。dht还可以用于标识包括在区块链中的特定数据。在这种方式下,数据值可以散列到dht中,其中dht数据库中的位置揭示可以发现数据的区块链块散列。

想要校验数据可信度的系统可以遵循两步查找过程,在所述过程中将感兴趣数据散列到dht位置。所述位置揭示区块散列值。将区块散列值散列到默克尔树中以显示区块链中的实际区块。对区块散列的计算以及对前一个区块的检查校验了链内的区块完整性。以此方式,dht中可识别的任何数据可以根据基础可信机制来验证其完整性。

本文所描述的,可以使用dht实施布隆过滤器机制。当dht值用于形成布隆过滤器时,它可以表明所述数据项有可供订阅者社区订阅的主题。社区可能对布隆过滤器值有兴趣并且可以在区块链上发现涉及数据值的事务时被通知。

数据分析旨在发现看似不相关的数据之间的关联性。因此,分析引擎可以假定以前未曾预料到的相关性,并且可以订阅这些主题。如果假定相关值的dht在统计学感兴趣的时间帧内激发,则数据分析师可以对其假定进行测试。考虑到映射到区块链的事务重要主体,这可以实现对数据分析人员的假定测试的高效通知。

对于网络结构来说,这种方法意味着对远距离节点的查询可以返回关于远程邻居的详细信息而无需向每个参与节点复制完整的网络图。这可以使网络更加动态化。广播以在本地网络中发现资源是相对便宜并且整个网络的联合性质意味着可以降低跨整个网络的资源发现广播通信量水平。

然而,因为尚未开发出如何把区块链用作具有互补的链外数据的控制平面/存储平面的方法,所以先前共识网络并没有纳入这个概念。因此,本文所公开的方面提供了一种可以用于实现这一点并且因此解决由于更多数据随时间存储在链上而引起的可扩展性问题的方法。

如本文所描述的,区块链被设计使得共识节点以k桶的方式分布可以提高区块链定位资源的效率。k桶可以引入半自主性的且其中可以存储局部可用的服务和合约而无需将其分布到整个网络的局部分段网络。这种存储可以在链外或链上完成。

如本文所描述的,装置可能希望在网络中定位服务、智能合约以及其他信息。因为区块链可以被视为控制平面而非数据平面,所以在链中存储这种信息可能引起可扩展性和性能问题。使用这种分类账认证的信贷的概念,可以将动态成本与获取服务或智能合约所需的每一跳相关联。尽管全局搜索可以得到最佳匹配,但是在执行时可能会在时间和信贷方面花费更多。因此,搜索实体必须在支付跳跃成本或满足当前的可能是空集的搜索结果之间作出折衷决策。搜索的资源必须采用已发现格式并且布隆过滤器的理念可以被用作用于进一步提高跨网络搜索效率的技术。

图11是使用布隆过滤器跳转来发现资源的过程1100的示意图。在过程1100中,客户端c节点1102根据一些实施例向最近的挖掘m节点1106广播对资源的搜索1104。m节点1106维护填充有其本地k桶1110内的节点内保存的服务、智能合约和文件的内容或如基本dht协议的操作指示的其自己的布隆过滤器1108。如果结果为负数,则搜索失败,并且客户端c节点1102可以使用多个标准中的任何标准来决定是终止搜索还是继续。如果结果是继续,则可以执行对网络内容的更详尽的搜索。

如本文所使用的,布隆过滤器是如包括多个位的存储结构等可以用于测试元素是否为集合的成员的概率性数据结构。查询可以返回可能在集合中或不在集合中的两个不同结果之一。布隆过滤器中的元素或结果是用于填充过滤器中的一些位集合的散列函数。如果用于搜索的散列与布隆过滤器中的所有位相匹配,则期望的结果可以包括在相关联的k桶中。相反,如果位中的任一位不匹配,则期望的结果不在k桶中。如果返回潜在正结果,则可以执行在与k桶相关联的节点的dht中进一步搜索散列码以判定是否存在期望的结果。

为了继续,m节点1106将搜索1104广播给另一个节点1112。所述节点1112可以包括填充有其本地k桶1116中的节点内容的布隆过滤器1114。如果所述搜索不成功,则c节点1102选择是否继续搜索。如果c节点1102选择继续搜索1104,则其可以被广播至另一个节点1118。此节点1118还包括列出其k桶1122中节点内容的布隆过滤器1120。在这种情况下,搜索1104成功地以三跳定位目标服务。用于继续搜索的示例性标准包括在寻求匹配的临界性与进一步搜索网络的额外成本之间的平衡。

图12是根据一些实施例的使用分布式散列标签(dht)进行资源发现的示例方法1200的处理流程图。图12的方法1200可以由关于图13所描述的iot装置1300来实施。如本文所描述的,分散式区块链可以将其数据的大部分存储在相关联的dht中,因此缩小了区块链数据库(db)的大小。如智能合约或甚至文件等资源可以位于dht中。资源的提供可以通过存在区块链记录及其相关联的散列而被支持。

通行费支付(tollpayment)可以与查找相关联以鼓励客户端接受可能包括次优结果的搜索结果,只要结果可以满足要求。通行费支付是用于通过装置与网络之间的进一步跳跃来扩展跨装置的搜索的费用。如果在第一k桶中搜索不成功,并且客户端请求扩展搜索,则可能需要付费。这可以节省对网络进行穷举搜索以获得某种更好结果的成本。

框1202表示例如向网络供电或向其添加新装置时的情况。在框1204处,配置网络。可能需要配置区块链和dht。区块链设置可以包括共识算法的选择、针对提出成功区块的挖掘器或验证器的奖励级别、算法的难度级别、奖励级别调整的频率等。如本文所使用的,挖掘器或验证器是通过访问区块链和dht来定位可能目标从而标识可能能够提供服务或功能的装置的装置。算法的难度级别可以指示与成功搜索匹配的搜索项的数量。奖励级别可以看作是对挖掘器或验证器执行成功搜索的报酬。它可以基于搜索的复杂性以及达到结果所需的跳数等。

在框1206处,初始化dht。dht被实例化并开始其操作。dht所有方自由地使用任何现有dht,或者指定或实施其自己的专用协议,所述专用协议可以进一步与区块链进行整合或者实现其自己的不同特征。dht可以包括非典型设置,如网络中应该保存多少数据片副本。在dht中,例如,当群中的对等机中的任何对等机中的最后一个或跟踪器节点不再可用时,文件可能会到期。如本文所描述的,感知区块链的dht可以在网络中自动维护文件的副本。如果数据所有方尚未指定关于如何移除或删除数据的任何条件,则所述数据可以无限期地保存。否则,数据可以具有固定的生存时间(ttl)或者所有方和指定代表可以移除所述数据。

在框1208处,创建初始空区块链数据库(db)和创始区块(genesisblock)。因为存储在区块链中的数据可能指向其他位置,所以并非所有数据都需要存储在区块链中。区块链开发者可以指定哪些字段或参数包括在通过实施的特定协议添加到区块链的记录中。创建或维护区块链的各方可以将所述决策委托给应用开发者,所述应用开发者可以选择在区块链上或者根据区块链开发者允许的规则在区块链上存储具体数据。在这个示例中,存储在区块链之外的数据可以存储在dht中。在所述过程中的任何时间,其他单元都可以作为挖掘器或验证器加入网络。挖掘器可以将关于已存储资源的数据添加到dht和区块链。验证器可以确认数据是正确的、存储dht并且执行搜索功能来定位与已存储资源有关的数据。

在框1210处,判定是否有新的参与者(如挖掘器或验证器)加入网络。如果是,则在框1212处,新加入的挖掘器或验证器可以复制区块链数据库和划分区dht。处理流程然后返回至框1210以判定是否有更多的挖掘器或验证器想要加入网络。任何节点可以是挖掘器和验证器,如果区块链协议在操作中这样允许的话。进一步地,任何节点可以是区块链存储节点或dht节点。如果加入网络的新节点参与了dht网络,则这可能导致根据dht的协议规则对dht进行重新分区。

在框1214处,可以创建针对区块链数据库和划分区dht的内容。内容创建可以是两步过程,其中,数据在dht中存储、复制和分布,并且指向数据位置的记录存储在区块链中。内容创建可以包括针对特定内容类型的附加步骤,如确定和访问内容源等。这种方法优于传统区块链的一方面是并非网络中的所有挖掘器或验证器都需要保留所有相同数据的记录。例如,在以太坊中,智能合约存储在区块链上,这意味着网络中的每个验证器都有副本。在这个示例中,如果dht指定保留每个数据对象的三个副本,则三个副本的文件片段跨参与dht的节点分布而且并不是每个节点都需要每个文件的完全副本。

在框1216处,为已创建内容生成统一资源标识符(uri)。uri可以使用涉及追踪器的传统方式。然而,这将引入集中式组件。因此,为了保持数据跨网络分布,uri可以利用磁铁链接或类似的基于内容的连网方法,而不是基于位置的数据标识符。

在框1218处,内容创建器存储uri、区块链协议规定下的任何附加元数据以及如存储在dht中的对象内容的散列。存储在区块链中的散列确保数据对象的提供,并且可以用于校验其内容未改变。进一步地,将散列存储在区块链中可以用于确认其存在的具体日期、由特定身份创建或所有等。

元数据可以用于控制允许创建者可以进行的内容。例如,智能合约所有方可以创建计算机程序并将其“孤立”在区块链上使得随后其不会终止其执行。因此,区块链协议所有方可能需要仔细考虑实现区块链的哪些功能。如果实现了,则数据可能会永久存活在dht中而不需要在区块链的生命周期中删除,并且数据权限可能不会受到委托。可以使用数据创建者任意使用的任何方法加密dht中的数据。

在框1220处,判定是否要创建更多内容。只要dht和区块链都继续存在,内容创建就可以是方法1200中与其他活动并列运行的连续循环。

在框1222处,内容可以在区块链或dht中或两者中进行标识。内容查找可以从检查存储在区块链中的布隆过滤器开始以判定搜索目标与布隆过滤器的散列之间是否存在位匹配。如果存在,则这可以表明内容可能存在于与布隆过滤器相关联的k桶中。内容查找然后可以检查dht以判定内容是否存在。

执行内容查找以寻找不再存储在区块链上并且复制到网络中每个节点的数据。数据可以存储在全局网络或数据平面中使得对整个网络的穷举搜索可能存在问题。dht实施其距离度量算法来形成k桶。距离不一定代表地理距离,也可能基于例如参与节点之间的跳数、跨那些跳的时延等。

本文所公开的方面可以允许寻求“足够好”的搜索结果,而不必找到最好的全局结果。如以下进一步公开的,可以基于“通行费”的替换概念引入对穷举搜索的抑制。如之前所解释的,客户端可能希望搜索或发现网络中提供或消费具体服务或数据的节点。典型场景可以是iot数据的分散式全球市场,其中,数据供应商和数据消费者希望找到彼此并彼此接触,而不需要集中式市场托管方(可以是易趣或亚马逊的示例)。

在框1222处,客户端将搜索目标的散列码广播给其最近的n个挖掘或验证节点。通过dht距离算法将节点定义为“靠近”另一个节点。被定义为邻近的节点可以视作k桶内的节点。进一步地,最近的挖掘或验证节点具有关于存储在其区域内的资源的大量信息。例如,它们将布隆过滤器实施为最优化,使得如果为负,则客户端广播可以快速响应,或者如果为正,则可以使用更穷举的搜索。

在框1226处,判定搜索是否成功。如果返回一个或多个结果,则搜索成功。本地广播的“通行费”成本为最小或0,取决于区块链或dht协议开发者在可能的情况下鼓励客户端接受结果的偏好。如果搜索标识了数据供应商,则客户端必须决定结果是否令人满意、在哪种情况下搜索进程结束或者他们是否想进一步搜索。如果客户希望进行进一步搜索,则网络应用算法来计算用于更广泛的搜索的“通行费”成本。

在框1230处,判定客户端是否可以支付通行费。在一些示例中,客户端可以选择改变搜索标准并执行不同的本地搜索而非继续进行成本更高的搜索。可以采用许多方式支付通行费,如区块链使用的加密货币的费用。当供应商和生产商已经签订了成功的合约约定时,通行费成本可以作为添加到任何合约约定中的服务费而支付。通行费成本可以是互联网服务提供商计费的一部分。

如果在框1230处支付总成本,则在框1232处广播延伸至相邻的k桶。处理流程然后返回至框1226以判定搜索是否成功。如果是,或者如果在框1230处没有支付通行费,则在框1228处搜索结束。

图13是根据一些实施例的可以存在于iot装置1300中用于将来自ip网状网络812中的不同节点的多个部分密钥组装成单个完整密钥的组件的示例的框图。类似编号的项如关于图3和图9所描述的那样。可以注意到,可以选择不同的组件并将其用于iot装置1300,而不是被选择用于关于图9所讨论的iot装置900以及本文所讨论的其他iot装置的那些组件。

iot装置1300或其中的大容量存储装置908可以包括用于实施本文所描述的联盟小组形成的多个模块。尽管在大容量存储装置908中示出为代码块,但是可以理解,任何模块都可以完全或部分地用例如内置在专用集成电路(asic)中的硬连线电路替换。

大容量存储装置908可以包括通信器1302,其通过一个或多个通信链路例如通过网状收发机910、上行链路收发机914、和nic916等向网状装置912或云302中的装置发送分组或接收来自所述网状装置或云中的装置的分组。通信器1302可以执行除了关于图12所描述的功能之外的其他功能,如在协议之间转换分组、执行证据来源添加等。进一步地,通信器1302可以是缓解系统的一部分。

布隆过滤器1304可以包括在大容量存储装置909中以将包含如资源或智能合约等项的重叠散列值的位序列保持在相关联的k桶中。k桶可以包括许多不同iot装置的信息,其中,iot装置能够提供资源、服务或智能合约。布隆过滤器1304也可以与dht数据库中的条目相关联。

区块链逻辑1306可以用于在区块链中创建条目,如uri、区块链协议规定的任何附加元数据以及如存储在dht中的对象内容的散列。可以包括用于为布隆过滤器和区块链创建如uri、元数据和散列码等内容的内容创建器1308。内容定位器1310可被包括以对内容进行定位。搜索管理器1312可以引导搜索值,例如,接受来自可能已经导致潜在正结果的搜索的结果,或者判定是否需要进一步搜索。搜索管理器1312可以为搜索中的进一步跳数支付所需的任何通行费。

图14是根据一些实施例的包括用于引导处理器1002使用布隆过滤器跳转方法进行资源发现的代码的非暂态机器可读介质1400的框图。处理器1002可以通过总线1004访问非暂态机器可读介质1400。处理器1002和总线1004可以如关于图10所描述的那样。非暂态机器可读介质1400可以包括针对图9的大容量存储装置908所描述的装置或者可以包括光盘、拇指驱动器或任何数量的其他硬件装置。

非暂态机器可读介质1400可以包括用于引导处理器1002创建区块链数据库的代码1402。可以包括用于引导处理器1002创建区块链内容的代码1404。可以包括用于引导处理器1002将区块链内容存储在区块链db中的代码1406。可以包括用于引导处理器1002进行内容搜索的代码1408。可以包括用于引导处理器1002在一次跳跃中将查询广播到装置的代码1410。可以包括用于引导处理器1002判定搜索是否成功的代码1412。可以包括用于引导处理器1002支付进一步搜索跳数的通行费的代码1414。

本文公开的技术可以指本机分散式数据库。本机分散式数据库可以是理解参与分散式集群而不是分布式集群的概念的数据库。在示例中,分散式数据库可以通过使用数据库内的表的公共和私密划分来起作用,以本机地支持分布式数据库的分散式操作。这可以通过允许跨多个受约束装置分布式存储数据来改善iot系统的操作。

图15是根据一些实施例的用于使用本机分散式数据库配置和操作共识网络1502的处理1500的示意图。共识网络1502可以具有节点1504。共识网络可以具有多个节点1504,包括第一节点到第n节点。在使用本机分散式数据库集群时,网络未知的一方可以加入网络。可以禁止现有节点1504形成中心机构。加入网络可以包括加入可以下发至公共统一资源定位符(url)或广告命名空间的事务的请求。命名空间可以硬编码到存储器中或可由用户调整。如果共识网络1502中的节点1504指示请求由网络中的节点组成的中心机构的实施的消息,则所述节点1504可以对新成员的登记进行投票。中心机构中的节点可以建立规则,默认情况下允许新成员加入网络。一旦新成员加入,所述新成员的数据库1506就可以与现有成员的数据库1506同步。所述同步可以包括要被复制的共享s划分区1508。数据库可以是区块链数据库。

共享划分区1508可以被底层数据库1506复制。共享划分区1508可以用于容纳数据平面。共享划分区1508可以用于容纳共识区块链。网络可以由可以执行任务的许多服务1510和客户端1512组成。例如,服务1510和客户端1512可以是iot系统,其收集和处理数据以在本地做出致动决定。由服务1510和客户端1512收集和计算的数据可以被发送到私密划分区1514。私密划分区可以集中控制。

每当网络所有方指示可以共享服务,或者可以共享从服务导出的服务数据时,私密划分区的设置可以改变或被复制到公共划分区1508。将数据从私密划分区1514移动到公共划分区1508可以包括将数据添加到链外机制。例如,数据从私密到公共的改变可以包括使用分散式数据库1506的共识性质来参与在分散式网络1502内的投票。用于将数据从公共改变为私密或者反过来的其他技术,可以包括从中心系统接收的命令、数据的到期日期等。可以使用这些的组合。例如,到期日期可以包括在策略中,之后网络中的装置的共识确定状态应该从私密改变为公共。

私密划分区1514可以被复制到网络所有方所有的其他节点。在某些情况下,私密划分区1514可以在其复制到由共识网络的其他成员操作的其他数据库实例方面受到限制。可以许可和/或加密共享划分区。

例如,网络所有方可以是数据所有方,并且通过创建共享划分区1508,可以由网络所有方设置划分区上的许可和加密。例如,许可可以是基于角色的,或者其可以是基于radius/diameter协议等。基于角色的许可可以包括网络中拥有访问某些数据的具体角色的其他行为者。例如,基于radius或diameter可以指互联网作为许可控制机制所使用的认证方法。加密可以由网络采用。例如,加密可以包括公钥方法、私钥方法、密码、密码短语、三重数据加密标准(des)、blowfish、twofish、或aes。通过利用共享划分区调整许可和加密,数据所有方可以保留控制可能被授权访问数据的网络中的各方的能力。通过利用共享划分区调整许可和加密,数据所有方可能能够以链外方式存储数据。

可以将数据的副本复制到包含经标识特权的节点。包含经标识特权的节点可以由数据所有方随时撤销这些经标识特权。撤销经标识特权可以导致失去对数据所有方共享的未来数据的访问,或者导致撤销延伸到历史数据的特权。可以创建许可系统以控制数据消费者制作数据副本的能力。如果角色被撤销并且数据消费者没有制作数据副本的许可,则限制数据消费者制作数据副本的能力可以包括撤销对先前共享数据的访问的能力。

授予和撤销角色的能力可以由控制平面处理。控制平面可以作为共识网络的一部分运行,并且可以在各方之间授予这种角色和数据访问权以换取数字货币。数字货币可以是在对等机之间相互共享数据的协议。

图16是根据一些实施例的用于使用本机分散式数据库在共识网络内加入和操作的示例方法1600的处理流程图。图16的方法1600可以由关于图17所描述的iot装置1700来实施。在框1602处,装置可以连接到分散式数据库网络。在一些示例中,可以将连接与加入区分开,因为加入可能暗示被其他节点接受和信任。可以安装分散式二进制软件。数据库可以创建私密数据库划分区或表,这些划分区或表可能受限于其他节点上的复制。这些数据库的数量、大小、和功能可由系统所有方或系统开发者决定。

在框1604处,系统可以发现命名空间。例如,命名空间可以指其他网络,并且所述其他网络可以提供分散式数据库服务。命名空间的发现可以例如通过位置查找、网络发现、装置发现等来完成。发现过程可以是自动的或硬编码的。加入网络的请求可以由尝试加入的装置发起。所述请求可以由诸如许可指南的构造来驱动。加入网络的请求可以通过装置的现有网络上的已知节点进行,其中,加入节点可以使用集群的已知节点来加入集群。当网络开发者首次初始化网络时或者在更早或更晚时间时,可以做出关于如何允许新节点加入网络的决定。如上所讨论的,网络开发者可以通过在分散式数据库集群中的参与者节点上实施的策略来设置节点允许的条件。一旦参与者运行分散式数据库软件的校验版本,策略就可以自动接受请求加入的参与者。可以使用测量环境来执行分散式数据库软件的校验以确认软件在白名单上,如本文所描述的那样。还可以使用任何其他技术来确认版本和有效性。接受政策可以使用投票来接受或拒绝新实体。

新实体最初可以加入在分散式数据库集群中具有有限权限的角色,并且随着时间的推移,随着实体的信任测量值增加,所述实体可以变得更具权威性。网络开发者可以允许指定节点成为网络上的验证器。例如,网络开发者可以将节点指定为像比特币等区块链的验证器。如果尝试加入分散式数据库集群的节点被拒绝,则所述节点可以作为独立数据库继续运行。独立数据库可以服务于与独立数据库存在于同一安全域和/或网络中的集中式应用。尝试加入分散式数据库集群的节点可能尝试发现一个或多个命名空间。如果网络开发者实施的策略许可,则尝试加入分散式数据库集群的节点可以加入多于一个共识网络。

在框1606处,被允许加入分散式数据库集群的节点可以如例如由网络开发者指定的创建多个共享划分区和表。存储在共享划分区和共享表中的数据可以在网络内复制。网络可以指示可以存储多少个数据对象副本以用于冗余。复制因子可以是全局的,或者可以基于例如数据对象类型不同地应用复制因子。可以基于数据的关键性来选择复制因子,或者可以根据数据的重要性逐个地为划分区和表选择复制因子。存储的数据可被分片。分片数据可以指代跨网络中的参与节点存储在部分片段中的数据,使得没有单个节点具有用于重建具体对象的完整分片集。

在框1608处,节点可以与网络的其余部分同步并且可以广告其服务。例如,服务广告可以包括监听具体端口或端口范围。使用数据库的客户端可以通过一系列端口访问数据库服务。本机集中式数据库可以路由其接收的数据,使得数据可以存储在私有划分区和私有表或者共享划分区和共享表中。客户端可能知道数据库的分散式性质,并且客户端可以请求分散式数据库私有地存储数据。客户端可能知道数据库的分散式性质,并且客户端可以请求分散式数据库公开地存储数据。分散式网络中的参与者可以将参与者的数据保持在一个位置,并且稍后选择参与者可能愿意共享的数据以及哪些数据不共享。存储在私有划分区或共享划分区中的数据可以在存储数据之前在数据所有方的引导下加密。加密可以由客户端完成和/或可以在分散式数据库中实施,例如,如果数据所有方信任数据库的话。分散式数据库可以为iot数据实现共享市场。

图17是根据一些实施例的可以存在于iot装置1700中用于加入和操作分散式数据库的组件的示例的框图。类似编号的项如关于图3和图9所描述的那样。可以注意到,可以选择不同的组件并将其用于iot装置1700,而不是被选择用于关于图9所讨论的iot装置900以及本文所讨论的其他iot装置的那些组件。

大容量存储装置908可以包括用于加入和操作分散式数据库的多个模块。尽管在大容量存储装置908中示出为代码块,但是可以理解,任何模块都可以完全或部分地使用例如内置到专用集成电路(asic)中的硬连线电路代替。

大容量存储装置908可以包括装置连接器1702,用于将装置连接到分散式数据库的网络。所述装置可以响应于连接到分散式数据库的网络而安装分散式数据库软件。响应于连接到分散式数据库的网络,装置可以创建共享数据库划分区。

大容量存储装置908可以包括命名空间发现器1704,用于发现分散式数据库的节点的命名空间。响应于发现分散式数据库的节点的命名空间,装置可以请求加入分散式数据库。响应于发现分散式数据库的节点的命名空间,所述装置可被分散式数据库接受。

大容量存储装置908可以包括划分区创建器1706,用于响应于被节点接受而创建共享数据库划分区。共享数据库划分区可以是经许可和经加密中的至少一种。响应于第二节点呈现指示第二节点复制数据的权限的特权,存储在共享数据库划分区中的数据副本可以被复制到第二节点。响应于创建共享数据库划分区,装置可以复制共享节点划分区以用于在共享数据库划分区中存储。

大容量存储装置908可以包括服务广告器1708,用于向分散式数据库广告服务。大容量存储装置908可以包括数据路由器1710,用于路由在私有数据库划分区与共享数据库划分区之间的服务执行期间接收和生成的数据。响应于数据被路由到共享数据库划分区,共享划分区中的数据可被复制以存储在共享节点划分区中。响应于节点在关于接受装置进行投票时,装置可以接收分散式数据库的接受。

图18是根据一些实施例的包括用于引导处理器1002加入和操作分散式数据库的代码的非暂态机器可读介质1800的框图。处理器1002可以通过总线1004访问非暂态机器可读介质1800。处理器1002和总线1004可以以与关于图10所描述的处理器1002和总线1004类似的方式来实施。非暂态机器可读介质1800可以包括针对图9的大容量存储装置908描述的装置,或者可以包括光盘、拇指驱动器、或任何数量的其他硬件装置。

非暂态机器可读介质1800可以包括代码1802,用于引导处理器1002将装置连接到分散式数据库的网络。所述装置可以响应于连接到分散式数据库的网络而安装分散式数据库软件。响应于连接到分散式数据库的网络,装置可以创建共享数据库划分区。

非暂态机器可读介质1800可以包括代码1804,用于引导处理器1002发现分散式数据库的节点的命名空间。响应于发现分散式数据库的节点的命名空间,装置可以请求加入分散式数据库。响应于发现分散式数据库的节点的命名空间,所述装置可被分散式数据库接受。

非暂态机器可读介质1800可以包括代码1806,用于引导处理器1002响应于被节点接受而创建共享数据库划分区。共享数据库划分区可以是经许可和经加密中的至少一种。响应于第二节点呈现指示第二节点复制数据的权限的特权,存储在共享数据库划分区中的数据副本可以被复制到第二节点。响应于创建共享数据库划分区,装置可以复制共享节点划分区以用于在共享数据库划分区中存储。

非暂态机器可读介质1800可以包括代码1808,用于引导处理器1002将服务广告至分散式数据库。非暂态机器可读介质1800可以包括代码1810,用于引导处理器1002响应于在私有数据库划分区与共享数据库划分区之间的服务执行而路由接收和生成的数据。响应于数据被路由到共享数据库划分区,共享划分区中的数据可被复制以存储在共享节点划分区中。响应于节点在关于接受装置进行投票时,装置可以接收分散式数据库的接受。

除了使用主动数据采集并在iot网络内进行建模之外,iot装置可以是由其他系统、装置或用户远程处理和消耗的数据的被动生产者。在一些框架中,数据流动通过网络,以便在雾或云中远程存储和处理。基于应用,可以将所处理的信息递送至iot装置或与生成数据的iot节点在地理上接近的装置。

在本公开中,网络内处理范例可以利用iot网络来充当集成计算和通信系统。一种方法使得iot网络能够在数据通过网络传输时通过协作处理数据来用作并行处理器。以并行方式处理数据可以减少或消除对目的地iot装置处进一步处理的依赖性。

在iot网络中提供基于接近度的并行处理允许在网络中生成的数据保持在所述网络本地。基于接近度的并行处理还可以减少或消除将数据转发至外部系统和网络的过程,从而减少外部数据暴露中固有的潜在安全缺陷和隐私缺陷。基于接近度的并行处理可以减少iot系统中存在的时延并且可以保留所生成信息的位置。计算时延的减少和位置的保留可以辅助自动或半自动控制应用,其中,具有所处理信息的消费者可能位于感测装置附近。

在iot网络中的并行处理的一个示例中,人工神经网络(ann)可以用作由iot网络实施的通用并行处理器。ann可以近似于任何可测量函数。在示例中,由前馈神经网络执行的计算可以被分区为要同时执行的不同任务。所述处理可以利用分布式处理、保留的位置、减少的时延和类似的特性来处理数据,同时优化对网络中资源的使用。考虑到每个节点处可用的资源、iot网络的连接、网络中信息的生产者和消费者,可以将不同的计算任务分布到多个iot节点中。

在示例中,可以对计算任务进行分解以跨雾资源进行部署,所述雾资源施加将计算任务分离成适于在网络内的多个平台上部署的多件的计算实践。在一个示例中,部署和计算方法可以基于跨雾的部署,从而利用另一通信网络作为用于在计算平台之间交换数据的工具。在这个示例中,计算和通信被认为是分离的过程。因此,在这个示例系统中,在不考虑网络拓扑或操作的情况下执行对分布式计算的部署以支持计算。根据一些实施例,当前公开的技术共同考虑到通信和计算。

图19示出了根据一些实施例的由物联网(iot)装置在分布式神经网络映射和资源管理中使用的示例方法1900的处理流程图。图19的方法1900可以由关于图21描述的iot装置2100来实施。方法1900可以使用关于图9描述的系统900来运行。处理流程可以在框1902处开始。

在框1902处,iot装置可以通过标识连接节点和物理网络特性来获得网络拓扑图和列表。物理网络特性可以包括彼此的精确位置或相对位置。物理网络特性还可以包括节点间距离、聚类、分散信息、接收信号强度和信噪比。由iot装置获得网络拓扑可以另外提供iot网络拓扑的抽象,以供神经网络映射系统进一步使用。这可以包括确定装置彼此的接近度以及装置的当前功率水平。作为抽象的一部分,可以从iot装置检取信号测量结果。信号测量结果的示例可以包括接收信号强度指示符(rssi)和广播功率。一旦获得拓扑,iot装置就可以对装置之间预期路径损耗和网络中的干扰进行建模。抽象的结果可以存储在iot数据库1904中。

在框1906处,所述方法可以包括对iot节点资源进行抽象。这些资源可以包括功率水平、可用存储空间、当前处理负荷、连网能力、正常运行时间和节点可靠性信息。在示例中,连网能力可以包括接口类型、时延和数据容量。在示例中,可以经由应用编程接口(api)包装器函数或代表性状态调用来暴露被抽象的iot资源。对iot节点资源进行抽象可以包括对剩余存储器、功率和存储的软件抽象。另一子任务可以包括具有用于系统资源信息的api包装器函数。一旦被抽象,iot装置就可以检取其可以访问的资源信息。

在框1908处,可以通过执行子任务(诸如确定具有源数据的用于处理的输入节点的位置、用于中间神经网络处理的隐藏节点、以及使用宿数据的输出节点)来确定神经网络拓扑。如关于此方法中其他步骤所讨论的,数据可以本地地或远程地存储在数据库1904或等同的存储介质中。对神经网络拓扑进行抽象可以例如包括利用信号三角测量或直接全球定位系统(gps)位置报告等使用欧几里德距离来标识位置。

在框1910处,所述方法执行映射优化。映射优化可以包括选择和细化多变量目标函数,目的是基于当前和历史网络和节点特性对节点任务进行最优分配。目标函数可以例如有利于成本、可靠性、处理速度和结果产生时间、或地理区域扩展。框1910的另一子任务可以包括制定整数线性程序、目标函数选择、细化约束和模型开发。

在框1912处,所述方法可以包括在网络上覆盖神经网络拓扑。这可以包括将从优化阶段获得的角色和任务映射到网络中的物理节点。创建、准备节点的任务并将其分派至物理节点或装置。框1912的一个子任务可以包括确认从优化阶段对角色和任务的成功部署。在成功分派任务和角色之后,系统可以开始进行更新网络和节点映射练习,以便为后续的工作负荷分配请求作准备。然后,处理流程可以结束,并且还可以根据需要再次开始,以将iot抽象为可沿着通信节点和处理节点分发的一系列任务,如上述语言中所讨论的。

图20是根据一些实施例的用于资源管理的分布式神经网络映射2000的示意图。在框2002中提供符号图例,所述符号图例标识示出的示例iot网络拓扑中的输入节点、输出节点和隐藏节点。

在输入iot网络拓扑2004中,示出了在iot连接的网格中分散的三个输入层节点、四个隐藏层节点和两个输出层节点。在示例中,iot拓扑的每个点表示节点。节点可以如上文且贯穿本申请所描述的那样,并且可以表示iot装置、服务器、或其他可互连的通信工具和处理工具。在示例中,输入iot网络拓扑可以表示在优化神经网络到物理iot网络的映射之前对节点连接的可视化。图示的节点或装置中的每一个都可以充当一个或多个神经元,并且经由无线链路实现连接。

映射框架2006可以表示在节点之间尝试映射以使传输功率以及用于将信息从输入节点传输至输出节点的传输时间最小化。映射可以考虑每个装置上可用的资源、每个装置的能力、以及iot网络的连接。iot可视化节点网络的网格中示出的节点连接可以各自表示跨具体节点传送信息的权重和时间。

映射框架2006可以产生示出输出iot网络拓扑2008的数据路径的映射。输出iot网络拓扑可以包括在其上映射神经元的物理节点的标识。可以通过制定使用与底层iot网络和覆盖神经网络相关联的所有输入的优化模型来实现映射。到优化模型的输入可以包括iot拓扑和每个节点处可用的资源、要映射在iot拓扑上的神经网络拓扑、源节点集和输出节点集。出于iot网络拓扑的目的,每个节点处的资源可以例如指代存储器资源、功率资源、传感器资源或存储资源等。类似地,神经网络拓扑可以映射在iot拓扑上,包括多个层和隐藏神经元,如至少在图20中示出的。

图21是根据一些实施例的可以存在于iot装置2100中用于分布式神经网络映射和资源管理的组件的示例的框图。类似编号的项如图9所描述的那样。

在示例中,大容量存储装置908可以包括用于实施本文所描述的映射框架的多个模块。尽管在大容量存储装置908中示出为代码块,但是可以理解,任何模块都可以完全或部分地使用例如内置到专用集成电路(asic)中的硬连线电路代替。大容量存储装置908可以包括iot网络拓扑标识器2102,所述iot网络拓扑标识器用于标识示出iot网络中的多个iot节点之间的连接的iot网络拓扑。iot网络拓扑示出了节点特性,所述节点特性包括例如节点间距离、聚类、分散信息、接收信号强度和信噪比中的至少一项。标识iot网络拓扑可以包括确定所述多个节点彼此的接近度、所述多个节点的当前功率水平、以及所述多个节点的信号测量结果。在示例中,检取所述多个节点的信号测量结果可以是通过至少检取接收信号强度指示符或广播功率。

大容量存储装置908可以包括iot节点资源标识器2104,所述iot节点资源标识器用于标识在iot网络拓扑中标识的每个iot节点的iot节点资源。iot节点资源可以包括功率水平、可用存储空间、当前处理负荷、连网能力、正常运行时间或节点可靠性信息中的至少一项。

大容量存储装置908可以包括神经网络拓扑标识器2106,所述神经网络拓扑标识器用于标识节点距离和节点位置的神经网络拓扑。神经网络可以是人工神经网络。

大容量存储装置908可以包括映射优化器2108,所述映射优化器用于基于iot节点资源、节点距离和节点位置来优化映射。优化的映射通过使用所述多个节点的节点位置来标识节点或位于同一物理位置的所述多个节点从而保留跨iot网络处理可分解任务的位置。映射的优化包括确定用于将信息从输入节点传输至输出节点的传输时间。

大容量存储装置908可以包括可分解任务处理器2110,所述可分解任务处理器用于基于iot网络上的神经网络拓扑的覆盖来处理所述多个iot节点中的可分解任务。处理所述多个iot节点中的可分解任务包括基于iot节点是否已经被标识为位于同一网络上的物理位置来将可分解任务的多个部分分派至所述多个iot节点。神经网络拓扑的覆盖可以包括三层,例如包括输入层、隐藏层和输出层。

图22是根据一些实施例的包括用于报告网络和网络装置的健康状况的代码的非暂态机器可读介质2200的框图。类似编号的项如关于图10所描述的项那样。

非暂态机器可读介质2200可以包括代码2202,所述代码用于引导处理器1002标识示出iot网络中的多个iot节点之间的连接的iot网络拓扑。iot网络拓扑可以例如示出节点特性,所述节点特性包括节点间距离、聚类、分散信息、接收信号强度和信噪比中的至少一项。标识iot网络拓扑可以包括确定所述多个节点彼此的接近度、所述多个节点的当前功率水平、以及所述多个节点的信号测量结果。在示例中,检取所述多个节点的信号测量结果可以是通过至少检取接收信号强度指示符或广播功率。

非暂态机器可读介质2200可以包括代码2204,所述代码用于引导处理器1002标识在iot网络拓扑中标识的每个iot节点的iot节点资源。iot节点资源包括功率水平、可用存储空间、当前处理负荷、连网能力、正常运行时间或节点可靠性信息中的至少一项。

非暂态机器可读介质2200可以包括代码2206,所述代码用于引导处理器1002标识节点距离和节点位置的神经网络拓扑。神经网络可以是人工神经网络。

非暂态机器可读介质2200可以包括代码2208,所述代码用于引导处理器1002基于iot节点资源、节点距离和节点位置来优化映射。优化的映射通过使用所述多个节点的节点位置来标识节点或位于同一物理位置(例如,位于城市的区域,诸如十字路口、建筑物、建筑物中的房间等)的所述多个节点从而保留跨iot网络处理可分解任务的位置。优化映射包括用于将信息从输入节点传输至输出节点的传输时间。

非暂态机器可读介质2200可以包括代码2210,所述代码用于引导处理器1002基于iot网络上的神经网络拓扑的覆盖来处理所述多个iot节点中的可分解任务。处理所述多个iot节点中的可分解任务可以包括基于iot节点是否已经被标识为位于物理位置或位于同一局域网(诸如通过路由器或对等连接而耦合)上来将可分解任务的多个部分分派至所述多个iot节点。神经网络拓扑的覆盖可以例如包括三层,至少包括输入层、隐藏层和输出层。

在一些实施例中,iot网络可以将区块链用于多个功能。这些功能可以包括例如创建组身份、创建类型身份、归档信任测量结果、注册对象标识符、安全装置引入、事件跟踪和数据记录等。然而,区块链同步引入了附加开销,这种附加开销对于受限装置而言可能较困难。使用非本地化区块链(诸如从任何地方接受事务的区域链)可能导致受限带宽iot子网的饱和,这可能导致功能延迟或数据缺失等问题。因此,可能需要用于使区块链处理本地化的策略来降低需求。进一步地,较小的区块链可能由于较少的节点而不太可靠。

图23是根据一些实施例的与网络层级结构2304中的级别相关联的区块链2302的层级结构的示意图。区块链2302的层级结构可以提高本地子网通信量的效率以维护和使用区块链2302。为了进一步提高效率,区块链2304可以通过默克尔树2306的相关联层级结构来进行索引,如关于图25进一步描述的。如本文所使用的,默克尔树通常是散列树的一种形式,其中,每个非叶节点利用两个子代节点的标签或值的散列来标记。

iot子网可以各自具有子网本地的区块链,使得区块链操作包含在子网内。因此,频繁使用本地区块链可能不会使连接至本地子网的子网饱和。

如图23所示,诸如在房间或本地环境中的本地iot网络(r1)2308可以具有相关联的区块链2310。在r12308中采取的或并入到事务2312中的动作可以提交给区块链2310以记录诸如身份、组构成、安全性、操作跟踪等活动。事务2312可以存储在区块链2310中的块中。可以针对所述块计算相关联散列码并将其保存到默克尔树2306。在默克尔树2306中,三角形表示顶部的父代节点以及下方的两个子代节点。在这个示例中,r1默克尔树2314和r2默克尔树2316可以与区块链2310中的不同块相关联。

本地iot网络r12308可以通过桥接器或路由器2320耦合至更高级的iot网络,诸如家庭网络(h1)2318。h12318可以包括区块链2322以记录来自h12318的事务2324。周期性地,诸如每秒、每分钟或在其他重复时间段,可以在属于父代网络h12318的区块链2322中创建检查点事务2326。检查点事务2326可以包括r1默克尔树2314或2316等其他默克尔树的散列值、或者提交给较低级别区块链2310的块的样本。

默克尔树r12314和r22316的最高顶点2328通过网络参考2330链接至h1默克尔树2334的最低级别2332。类似地,h12318可以通过另一桥接器或路由器2338耦合至下一更高级的网络,诸如iot网络云(c1)2336。可以在与c12336相关联的公共或私有区块链2342中创建合并检查点事务2340。进一步地,c12336可以将事务2344保存到区块链2342。c1默克尔树2348的最低级别2346可以包括网络参考2350,所述网络参考是根据默克尔树(诸如h1默克尔树2334)的下一较低级别的最高级别顶点2352的散列码创建的。

尽管通过三个级别示出为一组简单的级联区块链和相关联默克尔树,但是所述过程可以包括针对大量参与者和级别而级联直到根区块链。周期性检查点允许大部分本地通信量与父代区块链隔离,从而许可iot网络的可伸缩性,同时继续使用区块链保护完整性。随着区块链的大量使用,具有一种用于实例化和许可新区块链的定义方法可能是有用的。

图24是根据一些实施例的用于构造区块链层级结构的示例方法2400的处理流程图。图24的方法2400可以由关于图242描述的iot装置24200来实施。方法2400可以在框2402处开始,例如,iot装置通电或加入本地网络的时候。

在框2404处,当前或本地iot子网中的装置将事务数据写入当前区块链。如本文所描述的,事务数据可以是iot操作事件、可信计算测量结果、装置或组身份信息等。

在框2406处,可以判定区块链块是否是“同步”块。若否,则处理流程返回至框2404。如果所述块是如在框2406处确定的同步块,则在框2408处,网关区块链节点构造包含同步块的散列码的消息。将消息传输到下一级别的区块链。

在框2410处,下一级别的区块链中的挖掘器将消息以及指向较低区块链的网络参考提交到当前块。在框2412处,判定是否存在下一级别的区块链。若是,则处理流程返回至框2406以判定所述块是否是同步块。若否,则方法2400在框2414处结束,此时iot装置返回至正常操作以等待另一个周期性区块链写入。

图25是根据一些实施例的关于图23描述的默克尔树的展开图。如上所述,许多使用区块链的iot用例要求检取使用区块链块进行完整性校验的信息。然而,由于区块链事务的性质,重要的测量可能在链中彼此不接近。因此,需要对区块链进行高效索引。这可以通过使用默克尔树以对链进行索引来执行。如关于图23所描述的,跨越网络层级结构的区块链可以使用默克尔树以及网络参考来索引事务。区块链可以具有其自己的默克尔树或索引。检查点事务需要情境切换到最初生成检查点的子代区块链。寻求获得关于带检查点的块的洞悉的搜索引擎可能需要例如通过遵循网络参考2330或2350等来遍历网络,以搜索区块链层级结构中较低级别的默克尔树索引。

图26是根据一些实施例的用于使用默克尔树索引来搜索区块链层级结构的示例方法2600的处理流程图。图26的方法2600可以由关于图32描述的iot装置3200来实施。所述方法可以在框2602处开始,例如,接收到用于对数据进行定位的查询的时候。在框2604处,查询数据可以位于层级区块链中。在框2606处,可以使用数据值以查询将数据值与块散列值相关联的索引或查找表。在框2608处,将当前区块链设置为指向层级区块链的根。在框2610处,使用块散列值以向默克尔树查询当前区块链从而确定区块链中块的链中的目标块的位置。

在框2612处,判定目标块是否包含来自子代区块链的同步块散列。若是,则在框2614处,将当前区块链设置为指向子代区块链以搜索子代区块链。然后,处理流程返回至框2610,以恢复在子代区块链中的搜索。

如果目标块不包含同步块散列,则在框2616处,检取目标块并将其提供给搜索实体。然后,所述方法在框2618处结束,例如,恢复正常操作的时候。

使用网络参考将默克尔树索引搜索到区块链层级结构的较低级别中可能会导致网络时延增加。通过将搜索保持到根区块链,缓存子代节点区块链的默克尔树索引可能是减少索引搜索开销的一种方法。进一步地,云服务器可以具有足够的处理资源来维护iot网络中所有子代区块链的默克尔树。

图27是根据一些实施例的存储在云服务器中的高速缓存默克尔树的示意图。类似编号的项如关于图23所描述的那样。在这个示例中,c1默克尔树2348与图23的层级默克尔树中的相同。然而,c1默克尔树2348中的最低级别2702不包括网络参考,而相反包括对较低级别iot网络的高速缓存默克尔树2706的高速缓存参考2704。

例如,高速缓存默克尔树2706可以包括关于图23描述的h1默克尔树2334的h1默克尔树副本2708。在h1默克尔树副本2708中,最低级别2710可以包括对仍更低级别默克尔树的副本2714的参考2712。

类似地,中间区块链可以维持子树高速缓存以允许进行更高效的区域搜索。例如,图28示出了在如关于图23所描述的iot网络级别h12318处的分布式默克尔树高速缓存2800的示意图。h1默克尔树2334可以与关于图23描述的相同。然而,最低级别2802可以包括对rn默克尔树2806的副本的高速缓存参考2804,而不是网络参考。

图29是根据一些实施例的用于维持具有一致性的分布式高速缓存2900的技术的示意图。由于高速缓存不是直接与它们所参考的区块链一起保存,因此实施一种用于维持子代区块链默克尔树的高速缓存一致性的方法可能是有用的。iot框架可以用于高效地实施发布-订阅信令。子代区块链可以将较低级别默克尔树2904发布2902到保持较高级别默克尔树2906的父代区块链。类似地,父代区块链可以将更高级别默克尔树2906发布2908到根区块链,诸如发布到关于图23讨论的c1默克尔树2348。

图30是根据一些实施例的用于为区块链层级结构构造一致性高速缓存的示例方法3000的处理流程图。方法3000可以例如由处于层级结构的任何级别的iot或云装置来实施。例如,图30的方法3000可以由关于图32描述的iot装置3200来实施。方法可以在框3002处开始,例如,首次启动iot网络的时候或者iot装置加入iot网络的时候。

在框3004处,当前区块链订阅子代区块链的发布方代理。在框3006处,子代区块链接受父代区块链的订阅代理的注册。发布和订阅(pub-sub)可以仅包括索引或默克尔树,以维持一致性高速缓存。在一些示例中,发布-订阅可以包括来自子代区块链的完整区块链。

在框3008处,当前区块链将其当前指针设置为其父代区块链。在框3010处,判定当前区块链是否为根区块链。若是,则在框3012处,建立一致性高速缓存链接,并且系统等待发布事件发生,例如,如关于图31所描述的那样。如果当前区块链不是根区块链,则处理流程返回至框3004以便构建层级结构中下一级别的发布-订阅链接。

图31是根据一些实施例的用于维持区块链层级结构的一致性高速缓存的示例方法3100的处理流程图。例如,方法3100可以由处于层级结构的任何级别的iot或云装置来实施。例如,图31的方法3100可以由关于图32描述的iot装置3200来实施。在例如遵循图30的技术已经构造一致性高速缓存之后,所述方法可以在框3102处开始。

在框3104处,区块链现金代理接收高速缓存一致性事件。高速缓存一致性事件可以例如是发布默克尔树中针对较低级别区块链已经发生的变化。在一些示例中,可以使用周期性刷新来确认较高级别默克尔树中的信息是正确的。

在框3106处,对来自源区块链的默克尔树路径进行复制并将其发布到订阅方高速缓存代理。在框3108处,订阅方区块链中的高速缓存代理代替与子代树和块相对应的子树中的当前高速缓存的默克尔树路径。在框3110处,判定路径是否形成默克尔树的新分支。若否,则处理流程返回至框3104,以继续正常更新从而维持高速缓存一致性。

如果在框3110处路径确实形成默克尔树的新分支,则在框3112处构造子树中的新局部根。在框3114处,使当前参考等于局部根。在框3116处,判定局部根是否为全局根。若否,则处理流程返回至框3112,以构造下一子树中的新局部根。

如果在框3116处局部根等于全局根,则方法3100在框3118处结束。此时,所述过程可以在框3102处重新开始。

图32是根据一些实施例的可以存在于iot装置3200中用于实施具有相关联索引的层级区块链的组件的示例的框图。类似编号的项如关于图3和图9所描述的那样。可以注意到,可以选择不同组件并将其用于iot装置3200,而不是被选择用于那些关于图9所讨论的iot装置900和本文所讨论的其他iot装置的组件。

iot装置3200可以包括例如符合2009年由可信计算组颁布作为iso/iec11889的规范的可信平台模块(tpm)。tpm可以包括密码处理器(cp)、非易失性存储器(nvm)和安全存储器(sm)。cp可以提供随机数生成器、rsa散列生成器、sha-1散列生成器、以及加密-解密引擎等。nvm可以包括在制造时编程的密钥,所述密钥包括例如rsa密钥等。sm可以保持对平台配置寄存器中的软件进行的测量。测量结果可以指在存储装置908或存储器904中存储的代码或数据段上计算的散列码。从引导代码段的测量结果开始,多个测量结果可以用于通过从初始引导创建信任链来建立可信执行环境(tee)。sm可以提供安全存储装置。

tpm可以用于建立用于运行程序的tee或安全飞地。tpm还可以用于任何数量的其他功能,包括为安全通信提供加密支持以及用于标识的密钥。tpm可能不存在于更多受限装置中,诸如在iot网络的极边缘处的传感器。在这些装置中,可以由区块链本身、上游装置、虚拟tpm等提供安全性。

大容量存储装置908可以包括用于实施本文所描述的密钥管理功能的多个模块。尽管在大容量存储装置908中示出为代码块,但是可以理解,任何模块都可以完全或部分地用例如内置在专用集成电路(asic)中的硬连线电路替换。

大容量存储装置908可以包括区块链逻辑3202,所述区块链逻辑可以被包括用于维护区块链3204,所述区块链保持服务、属性、装置身份、合约、硬币余额等。区块链逻辑3202可以用于将区块链事务传播到其他iot装置。进一步地,区块链逻辑3202可以用于在网络层级结构的较低级别或较高级别建立对区块链的网络参考。例如,网络参考可以包括通过网关或路由器到较低级别iot网络的链路。

索引器3206可以用于生成包括区块链322中的块的散列码的默克尔树3208。默克尔树3208的最低级别可以包括对较低级别iot网络中iot装置中的由区块链逻辑3202生成的默克尔树的网络参考。

可以包括用于搜索区块链层级结构的定位器3210。定位器3210可以执行如关于图26所描述的这个功能,其中,定位器3210在相关默克尔树中搜索目标数据的散列码,所述散列码可以用于找到区块链中的块。

高速缓存创建器3212可以用于构造iot网络中处于层级结构中的较低级别的默克尔树的高速缓存3214。例如,高速缓存创建器3212可以执行关于图30所描述的方法3000。然后,定位器3210可以执行在高速缓存3214中搜索区块链层级结构,从而减少iot网络上的负荷。

高速缓存3214的一致性可以由高速缓存代理3216维护。高速缓存代理3216可以执行关于图31描述的方法3100。进一步地,高速缓存代理3216可以订阅较低级别iot装置中的高速缓存代理,以从那些高速缓存代理接收高速缓存一致性事件的通知。高速缓存代理3216还可以将当前iot装置3200的高速缓存一致性事件发布到已订阅高速缓存代理3216以接收改变通知的更高级别iot装置。

图33是根据一些实施例的包括用于引导处理器1002管理用于安全通信的密钥的代码的非暂态机器可读介质3300的框图。处理器1002可以通过总线1004访问非暂态机器可读介质3300。处理器1002和总线1004可以以与关于图10所描述的处理器1002和总线1004类似的方式来实施。非暂态机器可读介质3300可以包括针对图9的大容量存储装置908描述的装置,或者可以包括光盘、拇指驱动器或任何数量的其他硬件装置。

非暂态机器可读介质3300可以包括代码3302,所述代码用于引导处理器1002跨层级iot网络构造区块链层级结构,例如,从最低级别装置(诸如房间中的传感器)扩展到更广泛的iot网络(家庭网络或工厂网络)以及仍更广泛的iot网络(诸如云中)上。代码3302可以根据关于图33描述的方法来执行此功能。

可以包括代码3304,所述代码用于引导处理器1002构造区块链的层级索引。基于区块链中块内容的散列码值,层级索引可以是默克尔树。

可以包括代码3306,所述代码用于引导处理器1002在当前iot网络级别构造默克尔树的一致性高速缓存,其中,所述一致性高速缓存包括iot网络中较低级别的默克尔树。代码3306可以使用关于图2430描述的方法来执行对一致性高速缓存的构造。

可以包括代码3308,所述代码用于引导处理器1002维持高速缓存的一致性。代码3308可以使用关于图31描述的方法来执行此功能。

机器可读介质3300中可以包括用于实施iot装置的功能的任何数量的其他代码块。这些代码块可以包括用于在iot装置之间构建和传输分组的通信器、用于执行安全运行代码的测量的安全引导器/测量器、密钥生成器、或者如本文所描述的任何数量的其他代码块。

发布-订阅(pub-sub)是内容中心网络(ccn)的子集,其中,与通过将分组或帧发送到特定网络地址来进行路由相比,网络路由功能应用于对内容的高效路由。发布-订阅集中于将单个发布内容高效地路由到多个订阅方、将多个发布内容路由到单个订阅方、或这两者。除了用于特定内容项之外,发布-订阅还可能涉及话题,所述话题可以是可以在其下交换多个内容项的逻辑标题或主题行。

发布-订阅模型允许定义网络装置可以订阅、发布或进行这两者的话题。发布方可以发布多个话题,并且订阅方可以订阅多个话题。因此,在路由话题通信量时可能出现可伸缩性问题。可以以各种数据格式来表示话题,所述数据格式包括字符串、数字、网络(多播)地址、uuid和对象id层级结构。然而,路由效率可能受到如何对话题进行表达和格式化的影响。

如本文所描述的,布隆过滤器可以提供一种用于表示针对路由的发布-订阅话题的高效方法。如果目标值的所有设置位(例如,值为1的位)与布隆过滤器中的设置位相匹配,则布隆过滤器指示匹配。忽略尚未设置(例如,具有零值)的位。因此,如果在布隆过滤器中设置了位、但在目标值中具有零值,则可能仍然存在匹配,只要布隆过滤器中设置了目标值中的所有设置位即可。可以使用其他技术来跟踪用于发布-订阅分发的话题,诸如在分布式散列标签(dht)中存储话题的位模式或者在区块链中存储话题和相关联状态等。

图34是根据一些实施例的基于布隆过滤器使用发布-订阅(pub-sub)路由的示意图。所述设备构造一种布隆过滤器,在所述布隆过滤器中,对话题进行散列、然后诸如通过xor函数将其覆写到布隆过滤器的位空间上。多个话题格式可以使用相同的布隆过滤器,因为每个话题格式都将以不同方式进行散列。可以基于信息理论来确定用于布隆过滤器的位空间的长度。例如,更长的布隆过滤器(包括更多数量的位值)可以提供要包括的更多话题,同时降低位可能重叠从而导致不正确地检取话题的可能性的机率。

如图34所示,内容发布方3402可以生成话题的散列码。然后,发布方可以通过包括内容的散列码的所有设置位的路由器3404(u2)来发送内容。然后,路由器3404可以将布隆过滤器发布到本地发布方3406(p4)。其他路由器3404(诸如u2和u3)可以订阅第一路由器u2,例如,呈现包括目标话题的散列码的位图。

如果路由器3404(诸如u3)不包括布隆过滤器中的所有设置位,则不通过所述树来发送话题的散列码。这可以指示由路由器维护到3404u3的树中的订阅方3408没有订阅所述话题。从路由器3404u2,可以将散列码提供给其他发布方3406(诸如p2)。进一步地,话题的散列码可以移动通过其他路由器3404(诸如u1),只要u1中的布隆过滤器中的所有设置位都匹配即可。订阅方3408(诸如s1、s2和s5)可以从发布方3406(诸如p1)或路由器3404(诸如u1)接收内容。在这个示例中,订阅方3408(s2)的目标话题的散列码与来自内容发布方3402的散列码相匹配。

在这种方法中,订阅方3408可以构造包含其希望订阅的所有话题的覆写散列码的布隆过滤器。然后,订阅方3408可以向路由器结构注册布隆过滤器。发布方3406还可以供应包含其可以为其提供内容的所有话题的重叠散列码的布隆过滤器。作为示例,如果存在与同一语义话题相对应的多种格式化方法,则布隆过滤器可以与满足路由需求的一种或多种格式化方法相匹配。

给定使用发布-订阅模型的路由方案,可能的是,安全策略可能希望对可能暴露给外部网络的子网络、装置或网关的话题集施加限制。可以将布隆过滤器掩码添加到路由节点,其中,所述掩码表示可以被路由的话题的白名单表达。掩码还可以用于表示经过滤的话题的黑名单。

图35是根据一些实施例的使用白名单布隆过滤器以允许内容分发的示意图。在图35中,例如通过执行与(and)函数,计算话题布隆过滤器3502与白名单布隆过滤器3504的交集。如果结束布隆过滤器3506为零,则话题布隆过滤器3502处于白名单布隆过滤器3504中,并且允许内容前进到消费者。

图36是根据一些实施例的使用黑名单布隆过滤器以防止内容分发的示意图。在图36中,例如通过执行与非(nand)函数以生成中间布隆过滤器3608,计算话题布隆过滤器3602与黑名单布隆过滤器3604的交集。然后,中间布隆过滤器3608可以与话题布隆过滤器3602相交,例如,使用与函数3610。如果结束布隆过滤器3612不为零,则话题布隆过滤器3602处于黑名单布隆过滤器3604中,并且阻止内容前进到消费者。

图37是根据一些实施例的用于实施具有用于内容控制的黑名单布隆过滤器或白名单布隆过滤器的发布-订阅的示例方法3700的处理流程图。图37的方法3700可以由关于图38描述的iot装置3800来实施。方法3700可以在框3702处开始,例如,订阅方计算包括多个话题的散列码的布隆过滤器的时候。

在框3706处,管理员向系统中的路由器注册黑名单布隆过滤器、白名单布隆过滤器或两者。在框3708处,发布方使用发布布隆过滤器发布内容。发布布隆过滤器可以是话题或发布内容的直接散列码,其位长度与要用于分发的布隆过滤器的长度相匹配。

在框3710处,将内容递送至路由器。然后路由器计算发布方布隆过滤器与订阅方布隆过滤器的发布-订阅交集。在框3712处,判定发布-订阅交集是否等于零。如果发布-订阅交集等于零,这指示发布方布隆过滤器与订阅方布隆过滤器没有重叠,则方法3700在框3714处结束。

如果在框3712处确定发布-订阅交集不等于零,则在框3716处计算发布-订阅交集与针对白名单话题的布隆过滤器的白名单交集。在框3718处,计算发布-订阅交集与针对黑名单话题的布隆过滤器的黑名单交集。

在框3720处,判定白名单交集是否等于零并且黑名单交集是否不等于零两者。如果这两个条件都为真,则在框3722处不将内容路由至订阅方。如果任一条件不为真,则在框3724处将内容路由至订阅方。然后,方法3700在框3714处结束。

图38是根据一些实施例的可以存在于iot装置3800中用于实施使用布隆过滤器的发布-订阅内容分发系统的组件的示例的框图。类似编号的项如关于图3和图9所描述的那样。可以注意到,可以选择不同组件并将其用于iot装置3800,而不是被选择用于那些关于图9所讨论的iot装置900和本文所讨论的其他iot装置的组件。

iot装置3800可以包括例如符合2009年由可信计算组颁布作为iso/iec11889的规范的可信平台模块(tpm)。tpm可以包括密码处理器(cp)、非易失性存储器(nvm)和安全存储器(sm)。cp可以提供随机数生成器、rsa散列生成器、sha-1散列生成器、以及加密-解密引擎等。nvm可以包括在制造时编程的密钥,所述密钥包括例如rsa密钥等。sm可以保持对平台配置寄存器中的软件进行的测量。如本文所使用的,测量结果是对存储在存储装置908或存储器904中的代码或数据段进行计算的散列码。从引导代码段的测量结果开始,多个测量结果可以用于通过从初始引导创建信任链来建立可信执行环境(tee)。sm可以提供安全存储装置。

tpm可以用于建立用于运行程序的tee或安全飞地。tpm还可以用于任何数量的其他功能,包括为安全通信提供加密支持以及用于标识的密钥。tpm可能不存在于更多受限装置中,诸如在iot网络的极边缘处的传感器。在这些装置中,可以由区块链本身、上游装置、虚拟tpm等提供安全性。

大容量存储装置908可以包括用于实施本文所描述的发布-订阅功能的多个模块。尽管在大容量存储装置908中示出为代码块,但是可以理解,任何模块都可以完全或部分地使用例如内置到专用集成电路(asic)中的硬连线电路代替。

大容量存储装置908可以包括可以生成话题的散列码的散列码计算器3802。散列码计算器3802可以例如使用异或(xor)函数将散列码写入布隆过滤器中。这可以创建布隆过滤器话题列表3804。在一些示例中,iot装置3800可以用作发布方或路由器。在这些示例中,布隆过滤器话题列表3804可以从例如雾912或云302中的其他发布方或路由器获得。

可以包括用于存储被标识为可接受以供管理员再分发的话题的白名单掩码3806。可以包括用于存储被标识为不可接受用于再分发的话题的黑名单掩码3808。

可以包括用于向雾912或云302中的路由器和其他装置注册布隆过滤器话题列表3804的订阅管理器3810。如果iot装置3800用作路由器或发布方,则订阅管理器3810可以判定布隆过滤器话题列表3804中的话题是否处于白名单掩码3806中或黑名单掩码3808中,从而判定是否应当传递内容,如关于图37所描述的那样。

可以包括用于定位和提供与话题相关联的内容的内容定位器3812。例如,内容可以由其他发布方或路由器提供并由内容定位器3812保存,以允许在将内容提供给雾912或云302中的其他装置之前判定内容是处于白名单3806还是黑名单3808中。

图39是根据一些实施例的包括用于引导处理器1002管理使用布隆过滤器进行内容分发的发布订阅系统的代码的非暂态机器可读介质3900的框图。处理器1002可以通过总线1004访问非暂态机器可读介质3900。处理器1002和总线1004可以以与关于图10所描述的处理器1002和总线1004类似的方式来实施。非暂态机器可读介质3900可以包括针对图9的大容量存储装置908描述的装置,或者可以包括光盘、拇指驱动器或任何数量的其他硬件装置。

非暂态机器可读介质3900可以包括代码3902,所述代码用于引导处理器1002例如通过计算多个话题中的每个话题的散列码并且然后将所述散列码覆写到布隆过滤器上来生成布隆过滤器话题列表。

可以包括代码3904,所述代码用于引导处理器1002向iot网络中的路由器注册白名单掩码、黑名单掩码或两者。在一些示例中,代码3904可以从另一装置接受白名单掩码、黑名单掩码或两者,以供处理器在判定是否转发内容时使用。

可以包括代码3906,所述代码用于引导处理器1002向路由器注册订阅布隆过滤器。代码3906可以引导处理器1002例如在机器可读介质3900是路由器的一部分的情况下从另一装置接受订阅布隆过滤器。

可以包括代码3908,所述代码用于引导处理器1002计算内容过滤器与订阅布隆过滤器的内容交集以判定内容是否可在网络上访问。可以包括代码3910,所述代码用于引导处理器1002计算内容交集与白名单掩码的交集以判定内容是否得到许可。可以包括代码3912,所述代码用于引导处理器1002计算内容交集与黑名单掩码的交集以判定内容是否被禁止。

可以包括代码3914,所述代码用于引导处理器1002例如在内容被白名单掩码授权并且未被黑名单掩码禁止的情况下将内容路由到订阅方。如果这些条件中的任一条件为真,则代码3914可以删除内容。

机器可读介质3900中可以包括用于实施iot装置的功能的任何数量的其他代码块。这些代码块可以包括用于在iot装置之间构建和传输分组的通信器、用于执行安全运行代码的测量的安全引导器/测量器、密钥生成器、或者如本文所描述的任何数量的其他代码块。

给定由一组发布方、订阅方和路由节点组成的发布-订阅网络,发布方可能希望将机密内容包括在话题通知消息中。可以利用可以是组密钥或共享密钥的话题加密密钥对内容进行加密。此用例的一个挑战是订阅方需要在他们可以在接收到话题通知之后消费内容之前获得内容加密密钥。

因为路由节点可以用作密钥管理节点,所以可以使用发布-订阅网络来递送随网络动态扩展的密钥管理通知消息。例如,当原始话题包含加密内容时(其以信号通知对密钥的需要),可以自动创建和递送密钥管理话题。在接收到加密内容后,订阅方将下发密钥管理get(获得)请求以获得加密密钥。路由节点预期这一点并订阅预取加密密钥的密钥管理话题。

图40是根据一些实施例的具有加密内容的话题通知的示意图。在图40中,路由节点4002可以高速缓存话题密钥(诸如kt1),使得其在本地可用于由路由节点4002服务的订阅方4004的社区。密钥管理话题通知路由节点4002充当密钥管理话题的订阅方。

图41(a)是根据一些实施例的接收包括加密内容的话题通知的一组路由器的示意图。具有包含在其高速缓存中的密钥kt1的路由节点4102可以通过发布话题t14108的密钥管理话题t[kt1]4106对订阅4104进行响应。话题通知t14108可以包括加密内容c,其中,内容加密密钥为kt1。接收话题通知t14108可以使路由器4102、4110、4112或4114定义话题t[kt1]4106。

订阅4104话题t[t1]的路由器4110可以等待接收针对所述话题的密钥管理事件。话题t14108的发布方p4116可以将密钥kt1供应给路由器4102,所述路由器可以用作系统中其他路由器的密钥高速缓存管理器。在接收到密钥后,路由节点4102向其订阅方通知密钥kt1的可用性。

图41(b)是根据一些实施例的加热其高速缓存以预期订阅方请求加密话题的一组路由器的示意图。路由节点4102(诸如路由节点4110)的订阅方可以加热其高速缓存4120,例如,使用密钥get请求4122抢先获得密钥kt1。这可以在预期下游路由器(诸如路由节点4112)和订阅方节点(诸如订阅节点4118)通过下发密钥get请求4124对t1通知4108进行响应时来执行。可以注意到,可以进一步通过站点特定密钥或通过跨路由节点与订阅方节点之间的跳转来保护话题密钥的vpn会话对内容加密密钥进行加密。

图42是根据一些实施例的用于使用密钥管理通知和加热密钥高速缓存的示例方法4200的处理流程图。图42的方法4200可以由关于图43描述的iot装置4300来实施。所述方法可以在框4202处开始,例如,iot装置加入路由网络以进行内容分发的时候,所述装置可以使用布隆过滤器来进行内容分发。在框4204处,发布方生成内容(c)和内容加密密钥(kt1)。然后可以从公共存储库下载加密内容e={c}kt1。

在框4206处,发布方可以使内容在具有发布-订阅(pub-sub)订阅方的话题t1下可用。在框4208处,发布方可以向第一路由节点(r1)通知t1。路由节点(r1)可以构造包括可用的已发布话题的布隆过滤器。路由节点(r1)包括指示加密内容(e)可用的标签。

在框4210处,具有t1的订阅的第二路由节点(r2)从第一路由节点(r1)接收包括e标签的话题通知。在框4212处,第一路由节点(r1)构造密钥管理话题t[kt1]以向第二路由节点(r2)通知密钥kt1的可用性。

在框4214处,在接收到具有e标签的t1通知后,第二路由节点(r2)订阅密钥管理话题t[kt1]。进一步地,t1通知和密钥管理话题可以通过链中的连续路由器进行传播。

在框4216处,发布方将话题加密密钥kt1供应给第一路由节点。在接收到话题加密密钥后,通知t1的所有订阅方。

在框4218处,当话题t1的订阅方(s)希望使用话题加密密钥kt1对e进行解密时,订阅方从充当密钥高速缓存管理器的路由器请求kt1。订阅方的密钥高速缓存管理器可以是与订阅方通信的最近路由器,或者可以是为整个路由器组提供密钥高速缓存管理服务的初始路由器。

在框4220处,判定话题加密密钥是否处于高速缓存中。若否,则在框4222处,用作密钥高速缓存管理器的路由器从对等节点请求话题加密密钥。然后,处理流程返回至框4220,以判定话题加密密钥现在是否处于高速缓存中。如果在框4220处确定话题加密密钥处于高速缓存中,则处理流程行进至框4224,在所述框处,将话题加密密钥发送至请求方(诸如在这个示例中为订阅方)。

在框4226处,使用话题加密密钥kt1对加密内容e进行解密。然后,方法4200在框4228处结束。

图43是根据一些实施例的可以存在于iot装置4300中用于管理具有加密内容的话题通知的组件的示例的框图。类似编号的项如关于图3和图9所描述的那样。可以注意到,可以选择不同组件并将其用于iot装置4300,而不是被选择用于那些关于图9所讨论的iot装置900和本文所讨论的其他iot装置的组件。

iot装置4300可以包括例如符合2009年由可信计算组颁布作为iso/iec11889的规范的可信平台模块(tpm)。tpm可以包括密码处理器(cp)、非易失性存储器(nvm)和安全存储器(sm)。cp可以提供随机数生成器、rsa散列生成器、sha-1散列生成器、以及加密-解密引擎等。nvm可以包括在制造时编程的密钥,所述密钥包括例如rsa密钥等。sm可以保持对平台配置寄存器中的软件进行的测量。如本文所使用的,测量结果是对存储在存储装置908或存储器904中的代码或数据段进行计算的散列码。从引导代码段的测量结果开始,多个测量结果可以用于通过从初始引导创建信任链来建立可信执行环境(tee)。sm可以提供安全存储装置。

tpm可以用于建立用于运行程序的tee或安全飞地。tpm还可以用于任何数量的其他功能,包括为安全通信提供加密支持以及用于标识的密钥。tpm可能不存在于更多受限装置中,诸如在iot网络的极边缘处的传感器。在这些装置中,可以由区块链本身、上游装置、虚拟tpm等提供安全性。

大容量存储装置908可以包括用于实施本文所描述的加密内容分发功能的多个模块。尽管在大容量存储装置908中示出为代码块,但是可以理解,任何模块都可以完全或部分地使用例如内置到专用集成电路(asic)中的硬连线电路代替。

大容量存储装置908可以包括可以标识包括加密内容的话题的话题分类器4302。话题分类器4302可以为可用话题(包括包含加密内容和未加密内容的话题)编写创建布隆过滤器话题列表。

通知器4304可以向雾912中的其他装置通知包括加密内容的话题。可以包括用于订阅包括加密内容4310的话题密钥4308的话题的密钥订阅方4306。密钥订阅方4306可以从雾912中的装置(诸如发布方或路由器)拉出或接收加密内容4310,并且可以将加密内容4310提供给雾912中的其他装置(诸如路由器或订阅方)。可以包括用于例如使用话题密钥4308对加密内容进行解密的解密器4312。

图44是根据一些实施例的包括用于引导处理器1002管理具有加密内容的话题通知的代码的非暂态机器可读介质4400的框图。处理器1002可以通过总线1004访问非暂态机器可读介质4400。处理器1002和总线1004可以以与关于图10所描述的处理器1002和总线1004类似的方式来实施。非暂态机器可读介质4400可以包括针对图9的大容量存储装置908描述的装置,或者可以包括光盘、拇指驱动器或任何数量的其他硬件装置。

非暂态机器可读介质4400可以包括代码4402,所述代码用于引导处理器1002接收加密内容的通知。所述通知可以由发布方、与发布方联系的主要路由器、或与主要路由器联系的其他路由器来发送。

可以包括代码4404,所述代码用于引导处理器1002构造可用内容的布隆过滤器。所述布隆过滤器可以包括包含加密内容的话题的散列码以及不包含加密内容的话题的散列码。

可以包括代码4406,所述代码用于引导处理器1002将话题通知发送至路由器。话题通知可以包括指示话题已对内容进行加密的信息。

可以包括代码4408,所述代码用于引导处理器1002在接收到话题通知后订阅话题,包括例如密钥管理话题。可以包括代码4410,所述代码用于引导处理器1002向订阅方通知加密内容的密钥的可用性。

可以包括代码4412,所述代码用于引导处理器1002例如在订阅方为路由器的情况下从对等节点获得密钥。代码4412可以引导处理器1002从与订阅方通信的路由器获得密钥。

可以包括代码4414,所述代码用于引导处理器1002向订阅方发送密钥,其中,所述订阅方可以包括路由器或内容的最终消费者。代码4414可以引导处理器例如在订阅方为内容的消费者的情况下对内容进行解密。

机器可读介质4400中可以包括用于实施iot装置的功能的任何数量的其他代码块。这些代码块可以包括用于在iot装置之间构建和传输分组的通信器、用于执行安全运行代码的测量的安全引导器/测量器、密钥生成器、或者如本文所描述的任何数量的其他代码块。

除了用于保护联系人的话题级别加密之外,话题在一组发布方和订阅方内可能是隐私敏感的。为了实现增加的保护级别,可以使用组密钥对话题进行加密。组密钥可以兼作内容加密密钥,或者可以是第二组密钥。组密钥的分发可以遵循关于图42描述的方法4200及其他技术。

图45是根据一些实施例的获得话题组密钥4504的订阅方4502的示意图。可以通过首先将订阅方4502登记到由话题命名服务器4506管理的话题组中(例如,通过使订阅方4502向话题命名服务器4506发送加入或创建话题的加入请求4508)来获得话题组密钥4504。然后,话题命名服务器4506可以下发包括组成员身份凭证的消息4510。类似地,发布方4512可以通过发送加入请求4514并从话题命名服务器4516接收包括组成员身份凭证(诸如话题组密钥4504)的消息4516来加入所述组。

然后,发布方4512和订阅方4502可以作为组成员进行认证。一旦认证成功,话题命名服务器4506就可以发起安全会话以将话题组密钥4504分发给成员。

图46是根据一些实施例的发布方生成订阅布隆过滤器4602以用于向订阅方通知可用话题的示意图。布隆过滤器通知系统可以如关于图34所描述的那样起作用。一旦发布方和订阅方拥有用于对话题4606进行加密的话题组密钥4604,就可以由发布方对话题4606进行加密以形成加密话题4608。可以在散列函数4612中将非私密话题4610与加密话题4608进行组合以形成通知布隆过滤器4602。类似地,订阅方可以通过对感兴趣的话题进行加密、然后使用加密值作为到布隆过滤器的输入来计算订阅布隆过滤器。

图47是根据一些实施例的用于话题加密的示例方法4700的梯形图。图47的方法4700可以由关于图50描述的iot装置5000来实施。可以由从话题命名服务(tns)接收已知话题的列表的密钥分发中心(kdc)4702管理话题加密密钥,例如,如关于图45所描述的那样。kdc4702可以使用由tns下发的证书或证明密钥4704来校验订阅方(诸如订阅方4706),并且发布方(诸如发布方4708)在提供话题组密钥4710之前是话题组的成员。

tns可以使用增强型隐私id(epid)密钥作为话题组密钥4710以及用于登记成员的epid加入协议。当分发话题组密钥4704时,kdc4702可以使用经签名diffie-hellman(迪菲-赫尔曼)协议来建立到订阅方4704或发布方4706的安全信道。话题组密钥4704可以是对称密钥。

方法4700可以在发布方4708生成4712话题加密密钥4710时开始。然后,发布方4708利用由kdc4702提供的密钥对话题加密密钥4710进行加密,并在证明消息4714中将话题加密密钥4710推送到kdc4702。

然后,发布方4708可以将话题与使用话题加密密钥4710加密的内容一起发布4716到路由器4718。订阅方4706可以向路由器4718发送例如包括布隆过滤器的订阅消息4720,所述布隆过滤器包括订阅方4706希望接收的话题的散列码。

在接收到发布的话题消息4716后,路由器4718可以确定订阅方4706已经请求了所述内容。然后,路由器4718可以向订阅方4706发送包括加密内容的通知消息4722。然后,订阅方4706可以向kdc4702发送请求获得话题加密密钥4710的证明消息4724。

然后,kdc4702可以发送包括话题加密密钥4710的例如利用通信密钥加密的消息4726。然后,订阅方4706可以对内容进行解密4728以供使用。

可以使用同一话题加密密钥4710为话题提供附加内容。例如,发布方4708可以向路由器4718发送包括附加加密内容的消息4730。然后,路由器4718可以向订阅方4706发送包括附加加密内容的通知消息4732。然后,订阅方4706可以对附加内容进行解密4734以供使用。

iot网络通常根据安全性、隐私性、完整性或安全性的分类进行分区。多级安全标签可以用于消除分类的歧义。可能存在与每个级别相关的一组话题或类别。例如,如关于图34所描述的布隆过滤器机制可以用于递送包括安全标签的通知。然后,安全标签之后可以是路由节点和其他订阅方和发布方。多级安全标签可以基于多种不同的模型,包括例如biba完整性模型和bella-lapadula安全模式等。

图48是根据一些实施例的在发布-订阅环境中使用多级安全标签的示意图。所述附图展示了使用biba完整性模型和bell-lapodula机密性模型。在biba完整性模型中,通常不许可向上写入(约束i)到更高级别,诸如从l1到l2,并且不许可从更低级别向下读取(约束ii),诸如从l0到l1。在bell-lapadula机密性模型中,通常不许可向下写入(约束iii)到更低级别,诸如从l1到l0,并且不许可向上读取(约束iv)到更高级别,诸如从l0到l1。

发布方4802可以通过将标签类别映射到布隆话题cx来将安全标签编码为布隆过滤器。标签级别本身可以是在供应任何标签类别时存在的话题。可能适当的是,利用每个类别话题对级别话题进行编码,以确保不同级别的类别不会与第一级别的类别混淆。例如,可以通过两个值的密码散列或通过施加某个函数f()使得输出值不与任何输入值冲突来实现编码。例如,通过执行位模式的xor,可以利用话题的位模式来处理表示级别的位模式。然后,可以在布隆过滤器中使用所产生的位模式。

路由节点4804通过识别安全级别话题、然后施加适当的安全模型行为约束来应用安全策略语义。例如,如果遵循约束i,则路由器可以允许被授权在级别l0操作的订阅方s0接收来自被授权在级别l1操作的发布方的通知。类似地,如果授权订阅方s2在级别l2操作,则将阻止来自l1发布方的通知。

图48中展示的多级安全策略不是排他性的。可以使用其他多级安全策略。进一步地,可以注意到,尽管本文所使用的示例描述了将多级安全策略应用于网络中的多个级别,但是安全级别可以被定义为单个网络级别中的不同安全级别等。

图49是根据一些实施例的用于实施布隆过滤器以便将多级安全策略应用于通知消息的示例方法4900的处理流程图。图49的方法4900可以由关于图50描述的iot装置5000来实施。方法4900可以在框4902处开始,例如,订阅方正在请求发布方要共享内容的内容的时候。在框4904处,判定这是否是发布内容。若否,则活动可以是注册订阅,并且处理流程行进至框4906。

在框4906处,订阅方向路由器节点证明其身份,并且公开注册所述订阅的安全级别。在框4908处,订阅方供应布隆过滤器,包括感兴趣的内容。如本文所公开的,布隆过滤器可以包括感兴趣话题、类别和安全级别等的覆写位散列码。

在框4910处,判定路由器是否执行完整性策略。若是,则在框4912处,路由器可以掩蔽允许向下读取到更低网络级别的滤波器值。在框4914处,判定路由器是否执行机密性策略。若是,则在框4916处,路由器可以掩蔽允许向上读取更高网络级别的滤波器值。在框4918处,在路由器处注册订阅。然后,方法4900在框4920处结束。

如果在框4904处确定活动是发布内容,则处理流程行进至框4922。在框4922处,发布方向路由器节点证明给定所述发布的安全级别。在框4924处,将按类别的安全级别编码到与发布内容相对应的布隆过滤器中。如本文所描述的,除了当前发布内容之外,布隆过滤器可以例如包括公共话题、私密话题、密钥管理话题、安全级别话题等。

在框4926处,判定路由器是否执行完整性策略。若是,则在框4928处,路由器可以掩蔽允许向上写入到更高网络级别的滤波器值。在框4930处,判定路由器是否执行机密性策略。若是,则在框4932处,路由器可以掩蔽允许向下写入到更低网络级别的滤波器值。在框4934处,将发布的通知发送至路由器、订阅方或两者。然后,方法4900在框4920处结束。

图50是根据一些实施例的可以存在于iot装置5000中用于管理具有加密内容的话题通知的组件的示例的框图。iot装置5000可以用作iot网络(诸如雾912)中的发布方、路由器或订阅方。类似编号的项如关于图3、图9、图45和图47所描述的那样。可以注意到,可以选择不同组件并将其用于iot装置5000,而不是被选择用于那些关于图9所讨论的iot装置900和本文所讨论的其他iot装置的组件。

iot装置5000可以包括例如符合2009年由可信计算组颁布作为iso/iec11889的规范的可信平台模块(tpm)。tpm可以包括密码处理器(cp)、非易失性存储器(nvm)和安全存储器(sm)。cp可以提供随机数生成器、rsa散列生成器、sha-1散列生成器、以及加密-解密引擎等。nvm可以包括在制造时编程的密钥,所述密钥包括例如rsa密钥等。sm可以保持对平台配置寄存器中的软件进行的测量。如本文所使用的,测量结果是对存储在存储装置908或存储器904中的代码或数据段进行计算的散列码。从引导代码段的测量结果开始,多个测量结果可以用于通过从初始引导创建信任链来建立可信执行环境(tee)。sm可以提供安全存储装置。

tpm可以用于建立用于运行程序的tee或安全飞地。tpm还可以用于任何数量的其他功能,包括为安全通信提供加密支持以及用于标识的密钥。

大容量存储装置908可以包括用于实施本文所描述的加密内容分发功能的多个模块。尽管在大容量存储装置908中示出为代码块,但是可以理解,任何模块都可以完全或部分地使用例如内置到专用集成电路(asic)中的硬连线电路代替。

大容量存储装置908可以包括话题命名服务器4506,如关于图45所描述的那样。如所描述的,话题命名服务器4506可以管理诸如创建话题组及为话题组下发密钥、安全级别等话题。话题命名服务器4506可以使用任何数量的技术来生成密钥,包括本文所描述的技术,诸如汇编循环部分密钥、epid密钥生成、区块链密钥生成等。

订阅方5002可以向路由器和其他装置(诸如发布方)供应包含感兴趣的类别、话题和安全级别等的布隆过滤器。证明器5004可以例如向密钥分发中心5702证明发布方或订阅方的标识,如关于图47所描述的那样。密钥分发中心4702可以位于诸如雾912或云302中的另一装置中。密钥分发中心4702可以确认雾912或云302中的装置的身份,并向其他装置提供话题密钥、级别密钥或这两者。订阅方5002可以接收感兴趣内容的通知,并使用从密钥分发中心4702接收的密钥对感兴趣内容进行解密。

完整性执行器5006可以掩蔽允许将操作向下读取到更低安全级别或网络级别、将操作向上写入到更高安全级别或网络级别、或这两者的滤波器值。机密性执行器5008可以掩蔽允许将操作向上读取到更高安全级别或网络级别、将操作向下写入到更低安全级别或网络级别、或这两者的滤波器值。

图51是根据一些实施例的包括用于引导处理器1002管理具有加密内容的话题通知的代码的非暂态机器可读介质5100的框图。处理器1002可以通过总线1004访问非暂态机器可读介质5100。处理器1002和总线1004可以以与关于图10所描述的处理器1002和总线1004类似的方式来实施。非暂态机器可读介质5100可以包括针对图9的大容量存储装置908描述的装置,或者可以包括光盘、拇指驱动器或任何数量的其他硬件装置。

非暂态机器可读介质5100可以包括代码5102,所述代码用于引导处理器1002为话题、安全级别或这两者生成加密密钥。可以包括代码5104,所述代码用于引导处理器1002将加密密钥推送至密钥分发中心。然后,密钥分发中心可以将密钥提供给向密钥分发中心提供证明以确认标识的装置。装置可以包括发布方、路由器和订阅方等。

可以包括代码5106,所述代码用于引导处理器1002例如向路由器发布加密话题。可以包括代码5108,所述代码用于引导处理器1002将话题的通知发送至其他装置(诸如路由器、订阅方或这两者)。话题通知可以包括指示话题已对内容进行加密的信息。

可以包括代码5110,所述代码用于引导处理器1002例如通过发送请求加密密钥的证明消息来从密钥分发中心获得加密密钥。可以包括代码5112,所述代码用于引导处理器1002使用加密密钥对内容进行解密。

可以包括代码5114,所述代码用于引导处理器1002实施完整性策略,例如,掩蔽允许向下读取到更低安全级别或网络级别或向上写入到更高安全级别或网络级别的滤波器值。可以包括代码5116,所述代码用于引导处理器1002实施机密性策略,例如,掩蔽允许向下读取到更低安全级别或网络级别或向上写入到更高安全级别或网络级别的滤波器值。

机器可读介质5100中可以包括用于实施iot装置的功能的任何数量的其他代码块。这些代码块可以包括用于在iot装置之间构建和传输分组的通信器、用于执行安全运行代码的测量的安全引导器/测量器、密钥生成器、或者如本文所描述的任何数量的其他代码块。本文描述的技术可用于实施用于各种目的的任何数量的iot网络。可以实施的附加应用。

示例1包括一种设备。所述设备包括物联网(iot)网络,其中,所述iot网络包括iot装置。所述iot装置包括:数据管理器,用于管理所述iot装置上的数据;数据分类器,用于将穿过所述iot装置的数据的每一个片段分类为入站、出站或高速缓存;以及数据映射器,用于将所述所分类数据映射到所述iot装置上的物理位置。

示例2包括如示例1所述的主题。在示例2中,所述iot装置包括跟踪进入和离开所述iot装置的数据的数据历史库。

示例3包括如示例1至2中任一项所述的主题。在示例3中,所述iot装置包括协议管理器,用于管理用于通信信道的帧的协议。

示例4包括如示例1至3中任一项所述的主题。在示例4中,所述iot装置包括网络管理器,用于管理多个通信信道上的网络通信。

示例5包括如示例1至4中任一项所述的主题。在示例5中,所述iot装置包括:通信管理器,用于管理网状收发机、上行链路收发机、以太网连接、或其任何组合。

示例6包括如示例1至5中任一项所述的主题。在示例6中,所述iot装置包括收件箱,用于为所述iot装置本身存储入站数据。

示例7包括如示例1至6中任一项所述的主题。在示例7中,所述iot装置包括发件箱,用于存储将发送至向另一网状装置的出站数据。

示例8包括如示例1至7中任一项所述的主题。在示例8中,所述iot装置包括用于存储数据请求的高速缓存。

示例9包括如示例1至9中任一项所述的主题。在示例9中,所述iot装置包括彼此进行通信的多个网状装置,用于存储并分发数据。

示例10包括如示例1至10中任一项所述的主题。在示例10中,采用无状态方式来分发所述数据。

示例11包括一种用于分散式内容分发的方法。所述用于分散式内容分发的方法包括:将数据片段分类成入站数据、出站数据、或高速缓存数据;并且将所述数据片段映射到数据存储装置中的物理位置。

示例12包括如示例11所述的主题。在示例12中,所述方法包括:计算用于入站数据片段的散列密钥;并且判定所述散列密钥是否处于所述数据存储装置中,并且如果否,则存储所述数据片段。

示例13包括如示例11或12中任一项所述的主题。在示例13中,所述方法包括:在所述数据片段被确定为是出站数据的情况下,计算所述数据的生存时间(ttl)。

示例14包括如示例11至13中任一项所述的主题。在示例14中,所述ttl被计算为所述数据片段在删除之前可以被传输的跳数。

示例15包括如示例11至14中任一项所述的主题。在示例15中,所述ttl被计算为在删除之前的时间段。

示例16包括如示例11至15中任一项所述的主题。在示例16中,所述ttl被计算为数据片段可以被传输的跳数和时间段的组合。

示例17包括如示例11至16中任一项所述的主题。在示例17中,所述方法包括跟踪数据历史库中的入站数据请求、出站数据请求、或两者。

示例18包括如示例11至17中任一项所述的主题。在示例18中,所述方法包括至少部分地基于数据访问高速缓存的频率来调整所述高速缓存的大小。

示例19包括如示例11至18中任一项所述的主题。在示例19中,所述方法包括选择将至少部分地基于数据访问所述高速缓存的频率选择的存储类型。

示例20包括一种非暂态机器可读介质。所述非暂态机器可读介质包括指令,所述指令当被执行时引导处理器:将穿过物联网(iot)装置的数据片段分类为入站数据、出站数据、或高速缓存数据;并且将所述所分类数据片段映射到所述iot装置上的物理位置。

示例21包括如示例20所述的主题。在示例21中,所述非暂态机器可读介质包括指令,所述指令当被执行时引导所述处理器:计算用于入站数据的数据片段的散列密钥;并且判定所述散列密钥是否处于本地存储装置中,并且如果否,则将所述数据片段保存到所述本地存储装置。

示例22包括如示例20或21中任一项所述的主题。在示例22中,所述非暂态机器可读介质包括指令,所述指令当被执行时引导所述处理器更新处于本地存储装置中的数据片段。

示例23包括如示例20至22中任一项所述的主题。在示例23中,所述非暂态机器可读介质包括指令,所述指令当被执行时引导所述处理器计算数据片段的生存时间。

示例24包括一种设备。所述设备包括物联网(iot)网络,其中,所述iot网络包括iot装置。所述iot装置包括:布隆过滤器,用于存储关于k桶中的项的信息;区块链逻辑,用于在包括来自所述布隆过滤器的值的区块链中创建条目;内容创建器,用于为所述布隆过滤器创建散列码;以及搜索管理器,用于搜索布隆过滤器以确定搜索目标存在的概率。

示例25包括如示例24所述的主题。在示例25中,所述布隆过滤器包括包含位序列的存储装置结构。

示例26包括如示例24或25中任一项所述的主题。在示例26中,所述位序列包括针对所述项中的每一个计算的覆写散列值。

示例27包括如示例24至26中任一项所述的主题。在示例27中,所述k桶包括与所述iot装置相关联的一组节点。

示例28包括如示例26至27中任一项所述的主题。在示例28中,所述项包括资源、服务、合约、或iot装置身份或其任何组合。

示例29包括如示例24至28中任一项所述的主题,包括29的分布式散列标签(dht)数据库。在示例29中,所述dht数据库包括所述k桶中的每个项的单独条目。

示例30包括如示例24至29中任一项所述的主题。在示例30中,所述设备包括搜索所述dht数据库以判定项是否存在的内容定位器。

示例31包括如示例24至30中任一项所述的主题。在示例31中,所述内容创建器用于创建包括以下各项的内容:通用资源标识符(uri)、元数据、或散列码或其任何组合。

示例32包括如示例24至31中任一项所述的主题。在示例32中,所述搜索管理器用于为搜索中的进一步跳转支付通行费。

示例33包括一种用于资源发现的方法。所述用于资源发现的方法包括:计算搜索目标的散列码;将所述散列码的位与在布隆过滤器中设置的位进行比较;并且在所述散列码的所述位与所述布隆过滤器中设置的位相匹配的情况下,对分布式散列表(dht)执行搜索以获得所述搜索目标的所述散列码。

示例34包括如示例33所述的主题。在示例34中,所述方法包括:向本地k桶内的节点广播所述搜索目标的所述散列码;并且在针对所述散列码的所述位与所述布隆过滤器中设置的所述位相匹配的所述本地k桶内的所述节点的任何一个上对所述dht执行搜索。

示例35包括如示例33或34中任一项所述的主题。在示例35中,所述方法包括:确定在本地k桶中的所述搜索是不成功的;确定用于向远程k桶发送所述搜索目标的所述散列码的通行费成本;支付所述通行费成本,并且向所述远程k桶发送所述搜索目标的所述散列码以继续所述搜索。

示例36包括如示例33至35中任一项所述的主题。在示例36中,所述方法包括:确定在本地k桶中的所述搜索是不成功的;确定用于向所述远程k桶发送所述搜索目标的所述散列码的通行费成本;并且在所述通行费成本超过预定限额的情况下终止所述搜索。

示例37包括如示例33至36中任一项所述的主题。在示例37中,所述方法包括:初始化所述dht;创建区块链数据库;在所述区块链中创建创始区块;并且将所述区块链数据库和所述dht复制到多个参与者中的每一个。

示例38包括如示例33至37中任一项所述的主题。在示例38中,所述方法包括将所述布隆过滤器保存到所述区块链数据库中作为事务。

示例39包括如示例33至38中任一项所述的主题。在示例39中,所述方法包括将指针保存到所述区块链数据库作为事务,其中,所述指针包括所述dht的位置。

示例40包括如示例33至39中任一项所述的主题。在示例40中,所述方法包括为所述区块链数据库、所述dht或两者创建内容,包括创建项散列码、将所述项散列码保存到所述dht、为保存到所述dht的数据创建通用资源标识符(uri)、并且将所述uri和所述项散列码保存到所述区块链数据库。

示例41包括如示例33至40中任一项所述的主题。在示例41中,所述方法包括将所述uri和所述项散列码的元数据保存到所述区块链数据库,其中,所述元数据控制内容创建器的动作。

示例42包括一种非暂态机器可读介质。所述非暂态机器可读介质包括指令,所述指令当被执行时引导处理器查找内容以通过计算搜索目标的散列码以及将所述散列码的位与在布隆过滤器中设置的位进行比较来定位资源。

示例43包括如示例42所述的主题。在示例43中,所述非暂态机器可读介质包括指令,所述指令当被执行时引导所述处理器:确定所述散列码的所述位与在所述布隆过滤器中设置的位相匹配;并且搜索dht以判定所述散列码是否处于所述dht中。

示例44包括如示例42或43中任一项所述的主题。在示例44中,所述非暂态机器可读介质包括指令,所述指令当被执行时引导所述处理器创建区块链数据库。

示例45包括如示例42至44中任一项所述的主题。在示例45中,所述非暂态机器可读介质包括指令,所述指令当被执行时引导所述处理器为所述区块链数据库创建内容,包括为多个项中的每一个计算项散列码。

示例46包括如示例42至45中任一项所述的主题。在示例46中,所述非暂态机器可读介质包括指令,所述指令当被执行时引导所述处理器将每个项散列码存储在所述区块链数据库中。

示例47包括如示例42至46中任一项所述的主题。在示例47中,所述非暂态机器可读介质包括指令,所述指令当被执行时引导所述处理器在所述搜索在本地节点中不成功的情况下支付用于向其他节点发送所述搜索的通行费。

示例48包括一种用于在物联网(iot)网络中使用的设备。所述用于在物联网(iot)网络中使用的设备包括:装置连接器,用于将装置连接至分散式数据库的网络;命名空间发现器,用于发现所述分散式数据库的节点的命名空间;分区创建器,用于响应于被所述节点接受而创建共享数据库划分区;服务广告商,用于向所述分散式数据库广告服务;以及数据路由器,用于路由在私有数据库划分区与共享数据库划分区之间的服务执行期间接收和生成的数据。

示例49包括如示例48所述的主题。在示例49中,所述共享数据库划分区是被许可和被加密中的至少一个。

示例50包括如示例48或49中任一项所述的主题。在示例50中,响应于第二节点呈现指示所述第二节点复制所述数据的权限的特权,存储在共享数据库划分区中的数据的副本被复制到所述第二节点。

示例51包括如示例48至50中任一项所述的主题。在示例51中,所述装置响应于连接到分散式数据库的所述网络而安装分散式数据库软件。

示例52包括如示例48至51中任一项所述的主题。在示例52中,所述装置响应于连接到分散式数据库的所述网络而创建共享数据库划分区。

示例53包括如示例48至52中任一项所述的主题。在示例53中,所述装置响应于发现所述分散式数据库的所述节点的所述命名空间而请求加入所述分散式数据库。

示例54包括如示例48至53中任一项所述的主题。在示例54中,所述装置响应于创建所述共享数据库划分区而复制共享节点划分区以便存储在所述共享数据库划分区中。

示例55包括如示例48至54中任一项所述的主题。在示例55中,响应于数据被路由至所述共享数据库划分区而复制所述共享划分区中的所述数据以存储在共享节点划分区中。

示例56包括如示例48至55中任一项所述的主题。在示例56中,响应于节点关于接受所述装置进行投票所述装置接收对所述分散式数据库的接受。

示例57包括如示例48至56中任一项所述的主题。在示例57中,响应于发现所述分散式数据库的所述节点的所述命名空间,所述装置被所述分散式数据库接受。

示例58包括一种加入分散式数据库的方法。所述用于加入分散式数据库的方法包括:将装置连接至分散式数据库的网络;发现所述分散式数据库的节点的命名空间;响应于被所述节点接受而创建共享数据库划分区;向所述分散式数据库广告服务;并且路由在私有数据库划分区与共享数据库划分区之间的服务执行期间接收和生成的数据。

示例59包括如示例58所述的主题。在示例59中,所述共享数据库划分区是被许可和被加密中的至少一个。

示例60包括如示例58或59中任一项所述的主题。在示例60中,响应于第二节点呈现指示所述第二节点复制所述数据的权限的特权,存储在共享数据库划分区中的数据的副本被复制到所述第二节点。

示例61包括如示例58至60中任一项所述的主题。在示例61中,所述装置响应于连接到分散式数据库的所述网络而安装分散式数据库软件。

示例62包括如示例58至61中任一项所述的主题。在示例62中,所述装置响应于连接到分散式数据库的所述网络而创建共享数据库划分区。

示例63包括如示例58至62中任一项所述的主题。在示例63中,所述装置响应于发现所述分散式数据库的所述节点的所述命名空间而请求加入所述分散式数据库。

示例64包括如示例58至63中任一项所述的主题。在示例64中,所述装置响应于创建所述共享数据库划分区而复制共享节点划分区以便存储在所述共享数据库划分区中。

示例65包括如示例58至64中任一项所述的主题。在示例65中,响应于数据被路由至所述共享数据库划分区而复制所述共享划分区中的所述数据以存储在共享节点划分区中。

示例66包括如示例58至65中任一项所述的主题。在示例66中,响应于节点关于接受所述装置进行投票所述装置接收对所述分散式数据库的接受。

示例67包括如示例58至66中任一项所述的主题。在示例67中,响应于发现所述分散式数据库的所述节点的所述命名空间,所述装置被所述分散式数据库接受。

示例68包括一种非暂态机器可读介质。所述非暂态机器可读介质包括指令,所述指令当被执行时引导处理器:将装置连接至分散式数据库的网络;发现所述分散式数据库的节点的命名空间;响应于被所述节点接受而创建共享数据库划分区;向所述分散式数据库广告服务;并且路由响应于在私有数据库划分区与共享数据库划分区之间的服务执行期间接收和生成的数据。

示例69包括如示例68所述的主题。在示例69中,所述共享数据库划分区是被许可和被加密中的至少一个。

示例70包括如示例68或69中任一项所述的主题。在示例70中,响应于第二节点呈现指示所述第二节点复制所述数据的权限的特权,存储在共享数据库划分区中的数据的副本被复制到所述第二节点。

示例71包括如示例68至70中任一项所述的主题。在示例71中,所述装置响应于连接到分散式数据库的所述网络而安装分散式数据库软件。

示例72包括如示例68至71中任一项所述的主题。在示例72中,所述装置响应于连接到分散式数据库的所述网络而创建共享数据库划分区。

示例73包括如示例68至53中任一项所述的主题。在示例73中,所述装置响应于发现所述分散式数据库的所述节点的所述命名空间而请求加入所述分散式数据库。

示例74包括如示例68至73中任一项所述的主题。在示例74中,所述装置响应于创建所述共享数据库划分区而复制共享节点划分区以便存储在所述共享数据库划分区中。

示例75包括如示例68至74中任一项所述的主题。在示例75中,响应于数据被路由至所述共享数据库划分区而复制所述共享划分区中的所述数据以存储在共享节点划分区中。

示例76包括如示例68至75中任一项所述的主题。在示例76中,响应于节点关于接受所述装置进行投票所述装置接收对所述分散式数据库的接受。

示例77包括如示例68至76中任一项所述的主题。在示例77中,响应于发现所述分散式数据库的所述节点的所述命名空间,所述装置被所述分散式数据库接受。

示例78包括一种设备。所述设备包括物联网(iot)网络,其中,所述iot网络包括iot装置。所述iot装置包括:iot网络拓扑标识器,用于标识示出iot网络中的多个iot节点之间的连接的iot网络拓扑;iot节点资源标识器,用于标识在所述iot网络拓扑中标识的每个iot节点的iot节点资源;神经网络拓扑标识器,用于标识节点距离和节点位置的神经网络拓扑;映射优化器,用于基于所述iot节点资源、所述节点距离和所述节点位置来优化映射;以及可分解任务处理器,用于基于所述iot网络上的所述神经网络拓扑的覆盖来处理所述多个iot节点中的可分解任务。

示例79包括如示例78所述的主题。在示例79中,所述神经网络为人工神经网络。

示例80包括如示例78或79中任一项所述的主题。在示例80中,所述优化的映射通过使用所述多个节点的所述节点位置来标识节点或位于同一物理位置的所述多个节点从而保留跨所述iot网络处理所述可分解任务的位置。

示例81包括如示例78至80中任一项所述的主题。在示例81中,所述iot网络拓扑示出了节点特性,所述节点特性包括节点间距离、聚类、分散信息、接收信号强度和信噪比中的至少一项。

示例82包括如示例78至81中任一项所述的主题。在示例82中,标识所述iot网络拓扑包括确定所述多个节点彼此的接近度、所述多个节点的当前功率水平、以及所述多个节点的信号测量结果。

示例83包括如示例78至82中任一项所述的主题。在示例83中,检取所述多个节点的所述信号测量结果可以是通过至少检取接收信号强度指示符或广播功率。

示例84包括如示例78至83中任一项所述的主题。在示例84中,所述iot节点资源包括功率水平、可用存储空间、当前处理负荷、连网能力、正常运行时间或节点可靠性信息中的至少一项。

示例85包括如示例78至84中任一项所述的主题。在示例85中,所述在所述多个iot节点中处理可分解任务包括基于所述iot节点是否已经被标识为位于同一网络上的物理位置来将可分解任务的多个部分分派至所述多个iot节点。

示例86包括如示例78至85中任一项所述的主题。在示例86中,所述神经网络拓扑的所述覆盖包括三层,至少包括输入层、隐藏层和输出层。

示例87包括如示例78至86中任一项所述的主题。在示例87中,所述优化映射包括用于将信息从输入节点传输至输出节点的传输时间。

示例88包括一种用于使用物联网(iot)装置进行分布式神经网络映射和资源管理方法。所述用于使用物联网(iot)装置进行分布式神经网络映射和资源管理方法包括:标识示出iot网络中的多个iot节点之间的连接的iot网络拓扑;标识在所述iot网络拓扑中标识的每个iot节点的iot节点资源;标识节点距离和节点位置的神经网络拓扑;基于所述iot节点资源、所述节点距离和所述节点位置来优化映射;并且基于所述iot网络上的所述神经网络拓扑的覆盖来处理所述多个iot节点中的可分解任务。

示例89包括如示例88所述的主题。在示例89中,所述神经网络为人工神经网络。

示例90包括如示例88或89中任一项所述的主题。在示例90中,所述优化的映射通过使用所述多个节点的所述节点位置来标识节点或位于同一物理位置的所述多个节点从而保留跨所述iot网络处理所述可分解任务的位置。

示例91包括如示例88至90中任一项所述的主题。在示例91中,所述iot网络拓扑示出了节点特性,所述节点特性包括节点间距离、聚类、分散信息、接收信号强度和信噪比中的至少一项。

示例92包括如示例88至91中任一项所述的主题。在示例92中,标识所述iot网络拓扑包括确定所述多个节点彼此的接近度、所述多个节点的当前功率水平、以及所述多个节点的信号测量结果。

示例93包括如示例88至92中任一项所述的主题。在示例93中,检取所述多个节点的所述信号测量结果可以是通过至少检取接收信号强度指示符或广播功率。

示例94包括如示例88至93中任一项所述的主题。在示例94中,所述iot节点资源包括功率水平、可用存储空间、当前处理负荷、连网能力、正常运行时间或节点可靠性信息中的至少一项。

示例95包括如示例88至94中任一项所述的主题。在示例95中,所述在所述多个iot节点中处理可分解任务包括基于所述iot节点是否已经被标识为位于同一网络上的物理位置来将可分解任务的多个部分分派至所述多个iot节点。

示例96包括如示例88至95中任一项所述的主题。在示例96中,所述神经网络拓扑的所述覆盖包括三层,至少包括输入层、隐藏层和输出层。

示例97包括如示例88至96中任一项所述的主题。在示例97中,所述优化映射包括用于将信息从输入节点传输至输出节点的传输时间。

示例98包括一种非暂态机器可读介质,所述非暂态机器可读介质包括指令,所述指令当被执行时引导处理器:标识示出iot网络中的多个iot节点之间的连接的iot网络拓扑;标识在所述iot网络拓扑中标识的每个iot节点的iot节点资源;标识节点距离和节点位置的神经网络拓扑;基于所述iot节点资源、所述节点距离和所述节点位置来优化映射;并且基于所述iot网络上的所述神经网络拓扑的覆盖来处理所述多个iot节点中的可分解任务。

示例99包括如示例98所述的主题。在示例99中,所述神经网络为人工神经网络。

示例100包括如示例98或99中任一项所述的主题。在示例100中,优化的映射通过使用所述多个节点的所述节点位置来标识节点或位于同一物理位置的所述多个节点从而保留跨所述iot网络处理所述可分解任务的位置。

示例101包括如示例98至100中任一项所述的主题。在示例101中,所述iot网络拓扑示出了节点特性,所述节点特性包括节点间距离、聚类、分散信息、接收信号强度和信噪比中的至少一项。

示例102包括如示例98至101中任一项所述的主题。在示例102中,标识所述iot网络拓扑包括确定所述多个节点彼此的接近度、所述多个节点的当前功率水平、以及所述多个节点的信号测量结果。

示例103包括如示例98至102中任一项所述的主题。在示例103中,检取所述多个节点的所述信号测量结果可以是通过至少检取接收信号强度指示符或广播功率。

示例104包括如示例98至103中任一项所述的主题。在示例104中,所述iot节点资源包括功率水平、可用存储空间、当前处理负荷、连网能力、正常运行时间或节点可靠性信息中的至少一项。

示例105包括如示例98至104中任一项所述的主题。在示例105中,所述在所述多个iot节点中处理可分解任务包括基于所述iot节点是否已经被标识为位于同一网络上的物理位置来将可分解任务的多个部分分派至所述多个iot节点。

示例106包括如示例98至105中任一项所述的主题。在示例106中,所述神经网络拓扑的所述覆盖包括三层,包括至少输入层、隐藏层和输出层。

示例107包括如示例98至106中任一项所述的主题。在示例107中,优化映射包括用于将信息从输入节点传输至输出节点的传输时间。

示例108包括一种包括物联网(iot)装置的设备。所述设备包括一种物联网(iot)装置。所述iot装置包括:区块链逻辑,用于维护所述iot装置中的区块链并且跨其他iot装置传播所述区块链;默克尔树,包括与在所述区块链中的每个块相关联的散列码条目,其中,在所述默克尔树中的条目包括对与较低级别网络的较低级别区块链相关联较低默克尔树的引用;以及定位器,用于针对目标散列码来搜索所述默克尔树以定位所述区块链中的目标块,其中,如果所述定位器遇到对所述低级默克尔树的所述引用,则所述定位器用于针对所述目标块来搜索所述较低级别默克尔树。

示例109包括如示例108所述的主题。在示例109中,所述引用包括网络引用,所述网络引用包括到所述较低级别网络中的所述较低级别默克尔树的链路。

示例110包括如示例108或109中任一项所述的主题。在示例110中,所述引用包括到所述iot装置中的所述较低级别默克尔树的副本的链路。

示例111包括如示例108至110中任一项所述的主题。在示例111中,所述设备包括一种用于为所述区块链构建所述默克尔树的索引器。

示例112包括如示例108至111中任一项所述的主题。在示例112中,所述设备包括用于在所述iot装置中构建一致性高速缓存的高速缓存创建器,其中,所述一致性高速缓存包括所述较低级别默克尔树的副本。

示例113包括如示例108至112中任一项所述的主题。在示例113中,所述设备包括用于维护所述iot装置中的一致性高速缓存的高速缓存代理,其中,所述高速缓存代理订阅来自所述较低级别网络中的装置的通知,以通知所述高速缓存代理高速缓存一致性事件。

示例114包括如示例108至113中任一项所述的主题。在示例114中,所述高速缓存代理用于向较高级别网络中的较高级别高速缓存代理发布高速缓存一致性事件。

示例115包括一种用于定位层级区块链中的块的方法。所述用于定位层级区块链中的块的方法包括:获得所述块的散列值;在当前网络级别下将当前区块链设置为的层级区块链的根;将所述块散列值与所述当前区块链的默克尔树中的值进行比较;判定所述散列值是否映射到子代区块链的同步块,并且如果是,则将所述当前区块链设置为所述子代区块链;将所述块定位在所述当前区块链中,并且检取所述块。

示例116包括如示例115所述的主题。在示例116中,获得所述散列值包括在表中查找所述散列值。

示例117包括如示例115或116中任一项所述的主题。在示例117中,获得所述散列值包括计算所述散列值。

示例118包括如示例115至117中任一项所述的主题。在示例118中,将所述当前区块链设置成所述子代区块链包括将网络引用设置成较低级别区块链并且在所述较低级别区块链中继续搜索。

示例119包括如示例115至118中任一项所述的主题。在示例119中,将所述当前区块链设置成所述子代区块链包括为一致性高速缓存中的所述较低级别区块链的副本的指针设置值。

示例120包括如示例115至119中任一项所述的主题。在示例120中,将所述块定位在所当前区块链中包括确定所述块散列值与所述当前区块链的默克尔树中的值相匹配,并且从所述默克尔书获得指向所述块的指针。

示例121包括如示例115至120中任一项所述的主题。在示例121中,所述方法包括构造所述层级区块链,包括:将事务数据写入本地iot网络的当前区块链;判定块是否为同步块,并且如果是,则构建包含所述同步块的所述散列的事务;向下一较高级别iot网络发送所述同步块的所述散列;并且向所述下一较高级别网络中的当前块提交所述传输。

示例122包括如示例115至121中任一项所述的主题。在示例122中,所述方法包括构造所述层级区块链的一致性高速缓存,包括:订阅到子代区块链中的发布高速缓存代理的所述当前区块链;接受所述当前区块链在所述子代区块链中的注册;并且等待发布事件。

示例123包括如示例115至122中任一项所述的主题。在示例123中,所述方法包括维护所述层级区块链的一致性高速缓存,包括:接收子代区块链中的高速缓存一致性事件的通知;从所述子代区块链复制默克尔树路径;并且将其发布至订阅方区块链处的高速缓存代理;并且替换与所述子代区块链相对应的当前高速缓存默克尔树路径。

示例124包括如示例115至123中任一项所述的主题。在示例124中,所述方法包括:判定所述路径是否形成所述默克尔树路径的新分支,并且如果是,则在所述当前区块链中构造新的局部根;使所述当前区块链等于所述局部根;并且重复对所述新局部根的所述构造直到所述局部根与全局根相同。

示例125包括一种非暂态机器可读介质,所述非暂态机器可读介质包括指令,所述指令当被执行时引导处理器构造层级区块链并且构造所述层级区块链的层级索引。

示例126包括如示例125所述的主题。在示例126中,所述非暂态机器可读介质包括指令,所述指令当被执行时引导所述处理器根据所述层级索引将引用插入较低级别区块链。

示例127包括如示例125或126中任一项所述的主题。在示例127中,所述非暂态机器可读介质包括指令,所述指令当被执行时引导所述处理器在物联网(iot)网络中在较低级别处构造默克尔树的一致性高速缓存。

示例128包括如示例125至127中任一项所述的主题。在示例128中,所述非暂态机器可读介质包括指令,所述指令当被执行时引导所述处理器将来自物联网(iot)中的较低级别的默克尔树复制到所述iot网络中的当前级别。

示例129包括如示例125至128中任一项所述的主题。在示例129中,所述非暂态机器可读介质包括指令,所述指令当被执行时引导所述处理器维护来自iot网络中的较低级别的默克尔树的高速缓存的一致性。

示例130包括一种设备。所述设备包括物联网(iot)网络,其中,所述iot网络包括iot装置。所述iot装置包括:布隆过滤器话题列表,包括话题散列码;订阅管理器,用于将所述布隆过滤器话题列表与可用内容的列表进行比较;以及内容定位器,用于提供与散列码相关联的内容。

示例131包括如示例130所述的主题。在示例131中,所述iot装置包括白名单掩码,所述白名单掩码包括允许内容的散列码。

示例132包括如示例130或131中任一项所述的主题。在示例132中,所述iot装置包括黑名单掩码,所述黑名单掩码包括禁止内容的散列码。

示例133包括如示例130至132中任一项所述的主题。在示例133中,所述iot装置包括用于获得话题的散列码的散列码计算器。

示例134包括如示例130至133中任一项所述的主题。在示例134中,所述iot装置包括包含用于建立可信执行环境的可信平台模块。

示例135包括如示例130至134中任一项所述的主题。在示例135中,所述iot装置包括被提供来自另一装置的内容的订阅方。

示例136包括如示例130至135中任一项所述的主题。在示例136中,所述iot装置包括向另一装置提供内容的发布方。

示例137包括如示例130至136中任一项所述的主题。在示例137中,所述iot装置包括向多个装置提供内容的路由器。

示例138包括如示例130至137中任一项所述的主题。在示例138中,所述多个装置包括订阅方、发布方、或路由器或其任何组合。

示例139包括一种用于使用布隆过滤器来实施发布订阅内容分发模型的方法。所述用于使用布隆过滤器来实施发布订阅内容分发模型的方法包括:接收包括话题的散列码的订阅方布隆过滤器的注册;使用包括话题的多个散列码的发布方布隆过滤器来计算所述订阅方布隆过滤器的内容拦截;并且如果所述内容拦截指示在所述订阅方布隆过滤器中的设置位与在所述发布方布隆过滤器中的设置位之间的位相匹配,则针对所述散列码向订阅方提供的内容。

示例140包括如示例139所述的主题。在示例140中,所述方法包括使用包括允许话题的多个散列码的白名单掩码来计算所述订阅方布隆过滤器的白名单拦截。

示例141包括如示例139或140中任一项所述的主题。在示例141中,所述方法包括通过在所述订阅方布隆过滤器与所述白名单掩码之间执行与函数来计算所述白名单拦截。

示例142包括如示例139至141中任一项所述的主题。在示例142中,所述方法包括:使用包括禁止话题的多个散列码的黑名单掩码来计算所述订阅方布隆过滤器的黑名单拦截。

示例143包括如示例139至142中任一项所述的主题。在示例143中,所述方法包括:通过根据所述订阅方布隆过滤器与所述黑名单掩码之间的与非函数计算中间布隆过滤器来计算所述黑名单拦截;并且根据所述中间布隆过滤器与所述订阅方布隆过滤器之间的与函数来计算所述黑名单拦截。

示例144包括如示例139至143任一项所述的主题。在示例144中,所述方法包括如果白名单拦截指示所述订阅方布隆过滤器中的设置位与白名单掩码中的设置位之间的位相匹配并且黑名单拦截指示所述订阅方布隆过滤器中的设置位与黑名单掩码中的设置位之间没有位相匹配,则向所述订阅方提供所述内容。

示例145包括如示例139至144中任一项所述的主题。在示例145中,所述方法包括通过计算多个话题中每一个的散列码并且将所述多个话题中每一个的所述散列码覆写到布隆过滤器上来生成布隆过滤器话题列表。

示例146包括一种非暂态机器可读介质,所述非暂态机器可读介质包括指令,所述指令当被执行时引导处理器:注册订阅布隆过滤器;计算所述订阅布隆过滤器与内容过滤器的交集;并且如果所述交集不为零,则提供与所述订阅布隆过滤器相关联的内容。

示例147包括如示例146所述的主题。在示例147中,所述非暂态机器可读介质包括指令,所述指令当被执行时引导所述处理器注册指示允许内容的白名单掩码并且注册指示禁止内容的黑名单掩码。

示例148包括如示例146或147中任一项所述的主题。在示例148中,所述非暂态机器可读介质包括指令,所述指令当被执行时引导所述处理器确定所述订阅布隆过滤器的散列码与所述白名单掩码具有非零拦截,并且如果是,则提供所述内容。

示例149包括如示例146至148中任一项所述的主题。在示例149中,所述非暂态机器可读介质包括指令,所述指令当被执行时引导所述处理器确定所述订阅布隆过滤器的散列码与所述黑名单掩码具有非零拦截,并且如果是,则阻止提供所述内容。

示例150包括如示例146至149中任一项所述的主题。在示例150中,所述非暂态机器可读介质包括指令,所述指令当被执行时引导所述处理器确定话题的散列码,并且将所述散列码写入所述订阅布隆过滤器。

示例151包括如示例146至150中任一项所述的主题。在示例151中,所述非暂态机器可读介质包括指令,所述指令当被执行时引导所述处理器:确定话题的散列码;对所述散列码和所述订阅布隆过滤器执行异或以生成新的布隆过滤器;并且使用所述新的布隆过滤器来替换所述订阅布隆过滤器。

示例152包括一种设备。所述设备包括物联网(iot)网络,其中,所述iot网络包括iot装置。所述iot装置包括:话题分类器,用于确定话题包括加密内容;通知器,用于向其他装置发送所述话题包括加密内容的通知;以及密钥订阅方,用于订阅包括所述加密内容的话题密钥的所述话题。

示例153包括如示例152所述的主题。在示例153中,所述iot网络包括用于提供包括所述加密内容的所述话题的发布方。

示例154包括如示例152或153中任一项所述的主题。在示例154中,所述iot网络包括与发布方通信以获得所述话题的所述加密内容的路由器。

示例155包括如示例152至154中任一项所述的主题。在示例155中,所述路由器用于针对所述加密内容从所述发布方获得所述话题密钥。

示例156包括如示例152至155中任一项所述的主题。在示例156中,所述iot网络包括通过路由器链路与发布方通信的路由器。

示例157包括如示例152至156中任一项所述的主题。在示例157中,所述路由器的所述密钥订阅方用于从所述路由器链路的对等节点获得所述话题密钥。

示例158包括如示例152至157中任一项所述的主题。在示例158中,所述路由器包括用于所述话题密钥的高速缓存,其中,所述密钥订阅方从所述路由器链路中的对等节点抢先获得所述话题密钥以加热所述高速缓存。

示例159包括如示例152至158中任一项所述的主题。在示例159中,所述iot网络包括与路由器通信的订阅方,其中,所述订阅方包括所述加密内容的消费者。

示例160包括如示例152至159中任一项所述的主题。在示例160中,所述订阅方的所述密钥订阅方用于从所述路由器获得所述话题密钥。

示例161包括如示例152至160中任一项所述的主题。在示例161中,所述订阅方包括用于使用所述话题密钥来对所述加密内容进行解密的解密器。

示例162包括一种用于在发布-订阅内容分发环境下管理加密密钥的方法。所述用于在发布-订阅内容分发环境下管理加密密钥的方法包括:接收包括加密内容的话题是可用的通知;订阅话题密钥的密钥管理话题;接收所述话题密钥是可用的通知;并且请求所述话题密钥以抢先加热高速缓存。

示例163包括如示例162所述的主题。在示例163中,所述方法包括针对所述话题密钥从订阅方接收请求;并且提供来自所述高速缓存的所述话题密钥。

示例164包括如示例162或163中任一项所述的主题。在示例164中,所述方法包括构造所述密钥管理话题以向装置通知关于所述话题密钥的可用性。

示例165包括如示例162至164中任一项所述的主题。在示例165中,所述方法包括判定所述话题密钥是否处于所述高速缓存中,并且如果否,则从对等节点请求所述话题密钥。

示例166包括如示例162至165中任一项所述的主题。在示例166中,所述方法包括构造包括可用发布话题的散列码的布隆过滤器。

示例167包括如示例162至166中任一项所述的主题。在示例167中,请求所述话题密钥包括下发get(获得)命令,以获得所述话题密钥。

示例168包括如示例162至167中任一项所述的主题。在示例168中,所述方法包括使用站点特定密钥来对所述话题密钥进行加密以在路由节点与订阅方节点之间传送期间保护所述话题密钥免受拦截。

示例169包括如示例162至168中任一项所述的主题。在示例169中,所述方法包括从公共存储库下载所述加密内容。

示例170包括如示例162至169中任一项所述的主题。在示例170中,所述方法包括使用所述话题密钥来对所述加密内容进行解密。

示例171包括一种非暂态机器可读介质,所述非暂态机器可读介质包括指令,所述指令当被执行时引导处理器:接收加密内容的话题通知;在接收到所述话题通知时订阅密钥管理话题;并且在接收到所述话题密钥是可用的密钥通知时从对等节点获得所述话题密钥。

示例172包括如示例171所述的主题。在示例172中,所述非暂态机器可读介质包括指令,所述指令当被执行时引导所述处理器构造包括可用内容的散列码的布隆过滤器。

示例173包括如示例171或172中任一项所述的主题。在示例173中,所述非暂态机器可读介质包括指令,所述指令当被执行时引导所述处理器向对等路由器发送所述话题通知。

示例174包括如示例171至173中任一项所述的主题。在示例174中,所述非暂态机器可读介质包括指令,所述指令当被执行时引导所述处理器通知订阅方包括加密内容的所述话题。

示例175包括如示例171至174中任一项所述的主题。在示例175中,所述非暂态机器可读介质包括指令,所述指令当被执行时引导所述处理器在接收到来自订阅方针对所述话题密钥的请求时,向所述订阅方发送所述话题密钥。

示例176包括一种设备。所述设备包括物联网(iot)网络,其中,所述iot网络包括iot装置。所述iot装置还包括:证明器,用于向密钥分发中心提供针对所述iot装置的组成员身份凭证;以及订阅方,用于供应包括感兴趣话题的散列码的布隆过滤器并且从所述密钥分发中心接收密钥以对感兴趣内容进行解密。

示例177包括如示例176所述的主题。在示例177中,所述感兴趣话题包括公共话题、私密话题、密钥管理话题、安全级别话题或其任何组合。

示例178包括如示例176或177中任一项所述的主题。在示例178中,所述设备包括用于将装置登记到话题中并且向所述iot装置下发所述组成员身份凭证的话题命名服务器。

示例179包括如示例176至178中任一项所述的主题。在示例179中,所述设备包括用于校验所述iot装置的身份并且向所述iot装置提供话题组密钥的所述密钥分发中心。

示例180包括如示例176至179中任一项所述的主题。在示例180中,所述设备包括用于阻止将操作读取到较低级别、将操作写入较高级别或两者的完整性执行器。

示例181包括如示例176至180中任一项所述的主题。在示例181中,级别可以是安全级别、网络级别或两者。

示例182包括如示例176至181中任一项所述的主题。在示例182中,所述设备包括用于阻止将操作读取到较高级别、将操作写入较低级别或两者的机密性执行器。

示例183包括如示例176至182中任一项所述的主题。在示例183中,级别可以是安全级别、网络级别或两者。

示例184包括一种用于在发布-订阅环境下管理话题加密的方法。所述用于在发布-订阅环境下管理话题加密的方法包括:在路由器处订阅加密话题;接收包括加密内容的所述加密话题的通知;向密钥分发中心(kdc)发送订阅方证明消息;从所述kdc接收话题加密密钥;并且使用所述话题加密密钥来对所述加密内容进行解密。

示例185包括如示例184所述的主题。在示例185中,所述方法包括:接收所述加密话题包括进一步加密内容的通知;并且使用所述话题加密密钥来对所述进一步加密内容进行解密。

示例186包括如示例184或185中任一项所述的主题。在示例186中,所述方法包括:生成所述话题加密密钥;以发布方证明消息的形式将所述话题加密密钥推送至所述kdc;并且向路由器发布加密内容。

示例187包括如示例184至186中任一项所述的主题。在示例187中,所述方法包括:从订阅方接收针对所述加密话题的订阅;从发布方接收所述加密话题的发布;并且向所述订阅方提供具有加密内容的所述发布的通知。

示例188包括如示例184至187中任一项所述的主题。在示例188中,所述方法包括通过防止向下读取到较低级别、向上写入较高级别或两者来强制执行完整性策略。

示例189包括如示例184至188中任一项所述的主题。在示例189中,级别是安全级别、网络级别或两者。

示例190包括如示例184至189中任一项所述的主题。在示例190中,所述方法包括通过防止向上读取到较高级别、向下写入较低级别或两者来强制执行机密性策略。

示例191包括如示例184至190中任一项所述的主题。在示例191中,级别是安全级别、网络级别或两者。

示例192包括一种非暂态机器可读介质,所述非暂态机器可读介质包括指令,所述指令当被执行时引导处理器:生成话题加密密钥;将所述话题加密密钥推送至密钥分发中心(kdc);并且向路由器发布使用所述话题加密密钥加密的内容。

示例193包括如示例192所述的主题。在示例193中,所述非暂态机器可读介质包括指令,所述指令当被执行时引导所述处理器向订阅方发送加密内容。

示例194包括如示例192或193中任一项所述的主题。在示例194中,所述非暂态机器可读介质包括指令,所述指令当被执行时引导所述处理器从所述密钥分发中心获得所述话题加密密钥。

示例195包括如示例192至194中任一项所述的主题。在示例195中,所述非暂态机器可读介质包括指令,所述指令当被执行时引导所述处理器使用所述话题加密密钥对内容进行解密。

示例196包括如示例192至195中任一项所述的主题。在示例196中,所述非暂态机器可读介质包括指令,所述指令当被执行时引导所述处理器使用由话题命名服务器提供的凭证来证明身份。

示例197包括如示例192至196中任一项所述的主题。在示例197中,所述非暂态机器可读介质包括指令,所述指令当被执行时引导所述处理器强制执行完整性策略。

示例198包括如示例192至197中任一项所述的主题。在示例198中,所述非暂态机器可读介质包括指令,所述指令当被执行时引导所述处理器强制执行机密性策略。

示例199包括一种设备,所述设备包括用于执行如在任一其他示例中的方法的装置。

示例200包括一种机器可读存储装置,所述机器可读存储装置包括机器可读指令,所述机器可读指令当被执行时用于实施如任一其他示例中的方法或实现如任一其他示例中的设备。

一些实施例可以在硬件、固件和软件之一或其组合中被实施。一些实施例还可以实施为存储在机器可读介质上的指令,所述指令可以由计算平台读取并执行以便执行在此描述的操作。机器可读介质可以包括用于以可由机器(例如,计算机)读取的形式存储或传输信息的任何机构。例如,机器可读介质可以包括:只读存储器(rom);随机存取存储器(ram);磁盘存储介质;光学存储介质;闪存装置;或者电气、光学、声学或其他形式的传播信号(例如,载波、红外信号、数字信号)、或传输和/或接收信号的接口等。

实施例是实施方式或示例。说明书中对“实施例”、“一个实施例”、“一些实施例”、“各个实施例”或“其他实施例”的引用意味着结合实施例描述的具体特征、结构或特性包括在本技术的至少一些实施例中,但不必是全部实施例。“实施例”、“一个实施例”或“一些实施例”的多处出现不必全部指代相同的实施例。来自一个实施例的元件或方面可与另一实施例的元件或方面组合。

并非本文描述和展示的所有组件、特征、结构、特性等都需要包括在一个或多个具体实施例中。例如,如果说明书陈述组件、特征、结构或特性“可以”、“可能”、“可”或“能够”被包括,则那个具体组件、特征、结构或特性不要求被包括。如果说明书或权利要求提及“一(a)”或“一个(an)”要素,则那并非意味着仅存在一个要素。如果说明书或权利要求提及“附加的”要素,则那并不排除存在多于一个的附加要素。

应注意的是,尽管已经参考具体实施方式对一些实施例进行了描述,但根据一些实施例其他实施方式是可能的。另外,在附图中展示和/或本文描述的电路元件或其他特征的安排和/或顺序不需要以所展示和描述的具体方式安排。根据一些实施例,许多其他安排是可能的。

在附图中示出的每个系统中,一些情况中的元素可以各自都具有相同的附图标记或不同的附图标记以表明所表示的元素可以是不同和/或类似的。然而,元件可以足够灵活到具有不同的实施方式并与本文示出或描述的系统的一些或全部一起工作。图中示出的各种元件可以是相同的或不同的。哪个被称为第一元件和哪个被称为第二元件是任意的。

本技术不限于本文列出的具体细节。实际上,受益于此公开的本领域技术人员将理解,许多来自前述描述和附图的其他变型可以在本技术的范围内进行。从而,是包括其任何修改的以下权利要求定义了本发明的范围。

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