首页 / 专利库 / 银行与财务事项 / 区块链处理实体 / 使用来自分布式分类账的已知良好状态的故障转移响应

使用来自分布式分类账的已知良好状态的故障转移响应

阅读:789发布:2020-07-23

专利汇可以提供使用来自分布式分类账的已知良好状态的故障转移响应专利检索,专利查询,专利分析的服务。并且描述了使用基于密码和 区 块 链 技术的分布式分类账来对安装在可编程设备上的(多个) 计算机程序 进行修复和/或恢复的技术。一个或多个自立逻辑/模块可以向位于互连的设备上的分布式分类账提交设备之间的看 门 狗通信的记录。一个或多个互连的设备可以包括相应的自立逻辑/模块。逻辑/模块可以使用分布式分类账的记录来检查互连的设备上的(多个)计算机程序是按预期地操作的。当自立逻辑/模块未能对看门狗通信进行响应时,分布式分类账可以被更新以包括该故障。自立逻辑/模块可以基于分布式分类账和/或该故障来确定已安装的计算机程序是有错误的。此外,自立逻辑/模块可以基于该确定来启动一个或多个 软件 恢复服务。描述了其它优点和 实施例 。,下面是使用来自分布式分类账的已知良好状态的故障转移响应专利的具体信息内容。

1.一种存储有用于对安装在客户端设备上的程序进行恢复的指令的机器可读介质,包括当被执行时使得看狗设备进行以下操作的指令:
向所述客户端设备发送针对安装在所述客户端设备上的程序的预期操作的指示的请求
响应于在预先确定的时间段内接收到来自所述客户端设备的对所述请求的响应,向多个互连的设备上的分布式分类账提交第一记录,所述客户端设备和所述看门狗设备是在所述多个互连的设备之中的;
响应于在所述预先确定的时间段内没有接收到对所述请求的响应,向所述分布式分类账提交第二记录;以及
响应于提交所述第二记录,启动针对所述客户端设备的软件恢复服务。
2.根据权利要求1所述的机器可读介质,其中,所述指令还包括当被执行时使得所述看门狗设备向所述分布式分类账提交所述请求的指令。
3.根据权利要求1所述的机器可读介质,其中,针对所述客户端设备的所述软件恢复服务包括以下中的一个或多个:
第一软件恢复服务,其包括利用存储在映像中的所述程序的已知配置来替换所述程序;
第二软件恢复服务,其包括将由所述客户端设备执行的一个或多个操作转移到第二客户端设备,所述第二客户端设备是所述多个互连的设备中的一个;
第三软件恢复服务,其包括将所述客户端设备停用;以及
第四软件恢复服务,其包括分派用于替换所述客户端设备的替换设备或用于修复所述客户端设备的维修实体。
4.根据权利要求1所述的机器可读介质,其中,所述分布式分类账在链的单独的区块中存储成功响应的记录以及未能进行响应的指示。
5.根据权利要求4所述的机器可读介质,其中,每个已发送的响应是根据预先确定的时间表生成的。
6.根据权利要求1所述的机器可读介质,其中,所述看门狗设备包括至少一个防篡改处理器,其用于在安全环境中执行所述指令中的至少一些以便最小化或防止安全漏洞。
7.根据权利要求1所述的机器可读介质,其中,所述指令还包括当被执行时使得所述看门狗设备进行以下操作的指令:
基于所述分布式分类账来确定所述程序是有错误的。
8.一种用于对安装在客户端设备上的程序进行恢复的方法,所述方法包括:
向所述客户端设备并且由看门狗设备发送针对安装在所述客户端设备上的程序的预期操作的指示的请求;
响应于在预先确定的时间段内接收到来自所述客户端设备的对所述请求的响应,向多个互连的设备上的分布式分类账提交第一记录,所述客户端设备和所述看门狗设备是在所述多个互连的设备之中的;
响应于在所述预先确定的时间段内没有接收到对所述请求的响应,向所述分布式分类账提交第二记录;以及
响应于提交所述第二记录,启动针对所述客户端设备的软件恢复服务。
9.根据权利要求8所述的方法,还包括向所述分布式分类账提交所述请求。
10.根据权利要求8所述的方法,其中,针对所述客户端设备的所述软件恢复服务包括以下中的一个或多个:
第一软件恢复服务,其包括利用存储在映像中的所述程序的已知配置来替换所述程序;
第二软件恢复服务,其包括将由所述客户端设备执行的一个或多个操作转移到第二客户端设备,所述第二客户端设备是所述多个互连的设备中的一个;
第三软件恢复服务,其包括将所述客户端设备停用;以及
第四软件恢复服务,其包括分派用于替换所述客户端设备的替换设备或用于修复所述客户端设备的维修实体。
11.根据权利要求8所述的方法,其中,所述分布式分类账在区块链的单独的区块中存储成功响应的记录以及未能进行响应的指示。
12.根据权利要求11所述的方法,其中,每个已发送的响应是根据预先确定的时间表生成的。
13.根据权利要求8所述的方法,还包括基于所述分布式分类账来确定所述程序是有错误的。
14.一种用于对安装在客户端设备上的程序进行恢复的看门狗设备,所述看门狗设备包括:
一个或多个处理器;以及
存储器,其耦合到所述一个或多个处理器并且存储有指令,包括当被执行时使得所述一个或多个处理器进行以下操作的指令:
向所述客户端设备发送针对安装在所述客户端设备上的程序的预期操作的指示的请求;
响应于在预先确定的时间段内接收到来自所述客户端设备的对所述请求的响应,向多个互连的设备上的分布式分类账提交第一记录,所述客户端设备和所述看门狗设备是在所述多个互连的设备之中的;
响应于在所述预先确定的时间段内没有接收到对所述请求的响应,向所述分布式分类账提交第二记录;以及
响应于提交所述第二记录,启动针对所述客户端设备的软件恢复服务。
15.根据权利要求14所述的看门狗设备,其中,所述指令还包括当被执行时使得所述一个或多个处理器向所述分布式分类账提交所述请求的指令。
16.根据权利要求14所述的看门狗设备,其中,针对所述客户端设备的所述软件恢复服务包括以下中的一个或多个:
第一软件恢复服务,其包括利用存储在映像中的所述程序的已知配置来替换所述程序;
第二软件恢复服务,其包括将由所述客户端设备执行的一个或多个操作转移到第二客户端设备,所述第二客户端设备是所述多个互连的设备中的一个;
第三软件恢复服务,其包括将所述客户端设备停用;以及
第四软件恢复服务,其包括分派用于替换所述客户端设备的替换设备或用于修复所述客户端设备的维修实体。
17.根据权利要求14所述的看门狗设备,其中,所述分布式分类账在区块链的单独的区块中存储成功响应的记录以及未能进行响应的指示。
18.根据权利要求17所述的看门狗设备,其中,每个已发送的响应是根据预先确定的时间表生成的。
19.根据权利要求14所述的看门狗设备,其中,所述一个或多个处理器包括至少一个防篡改处理器,其用于在安全环境中执行所述指令中的至少一些以便最小化或防止安全漏洞。
20.根据权利要求14所述的看门狗设备,其中,所述指令还包括当被执行时使得所述一个或多个处理器基于所述分布式分类账来确定所述程序有错误的指令。
21.一种存储有用于对安装在客户端设备上的程序进行恢复的指令的机器可读介质,包括当被执行时使得所述客户端设备进行以下操作的指令:
向看门狗设备发送指示安装在所述客户端设备上的程序的预期操作的消息;
响应于在预先确定的时间段内将所述消息发送到所述看门狗设备,向多个互连的设备上的分布式分类账提交第一记录,所述客户端设备和所述看门狗设备是在所述多个互连的设备之中的;
响应于在所述预先确定的时间段内没有将所述消息发送到所述看门狗设备,向所述分布式分类账提交第二记录;以及
响应于提交所述第二记录,启动针对所述客户端设备的软件恢复服务。
22.一种用于对安装在客户端设备上的程序进行恢复的方法,所述方法包括:
由所述客户端设备并且向看门狗设备发送指示安装在所述客户端设备上的程序的预期操作的消息;
响应于在预先确定的时间段内将所述消息发送到所述看门狗设备,向多个互连的设备上的分布式分类账提交第一记录,所述客户端设备和所述看门狗设备是在所述多个互连的设备之中的;
响应于在所述预先确定的时间段内没有将所述消息发送到所述看门狗设备,向所述分布式分类账提交第二记录;以及
响应于提交所述第二记录,启动针对所述客户端设备的软件恢复服务。
23.一种用于对已安装的程序进行恢复的客户端设备,包括:
一个或多个处理器;以及
存储器,其耦合到所述一个或多个处理器并且存储有指令,其中,所述指令包括当被执行时使得所述一个或多个处理器中的至少一些进行以下操作的指令:
向看门狗设备发送指示安装在所述客户端设备上的程序的预期操作的消息;
响应于在预先确定的时间段内将所述消息发送到所述看门狗设备,向多个互连的设备上的分布式分类账提交第一记录,所述客户端设备和所述看门狗设备是在所述多个互连的设备之中的;
响应于在所述预先确定的时间段内没有将所述消息发送到所述看门狗设备,向所述分布式分类账提交第二记录;以及
响应于提交所述第二记录,启动针对所述客户端设备的软件恢复服务。
24.根据权利要求23所述的客户端设备,其中,所述一个或多个处理器包括至少一个防篡改处理器,其用于在安全环境中执行所述指令中的至少一些以便最小化或防止安全漏洞。
25.根据权利要求24所述的客户端设备,其中,所述客户端设备还包括:
辅助电源,其被配置为独立于所述客户端设备的其它组件而对所述防篡改处理器供电。

说明书全文

使用来自分布式分类账的已知良好状态的故障转移响应

技术领域

[0001] 本文所描述的实施例总体上涉及可编程设备领域。更具体地,本文所描述的实施例涉及对安装在一个或多个互连的可编程设备上的故障计算机程序(例如,软件固件等)进行修复或恢复。

背景技术

[0002] 可编程设备——例如,物联网(IoT)设备、移动计算设备、计算设备、逻辑计算设备、虚拟计算设备——能够组成由互连的可编程设备构成的计算机系统。在这样的计算机系统中,每个可编程设备包括用于执行其操作和功能的一个或多个计算机程序(例如,软件、固件等)。
[0003] 随着技术的改进不断使得可编程设备更加可访问且高效,互连的可编程设备的数量可能会增加。因此,一些计算机系统可以包括许多互连的可编程设备(例如,数十、数百、数千、数百万、数十亿等)。在这样的系统中,可能出现的一个问题是可扩缩性问题。当一个或多个可编程设备由于安装在其上的一个或多个有错误的计算机程序而故障时,会发生该问题,这进而导致对于恢复或修复安装在其上的有错误的(多个)计算机程序的需求。服务于由互连的设备构成的计算机系统的企业信息技术(IT)系统采取的一种当前方法依赖于中央配置服务器利用安装在设备上的计算机程序(例如,软件、固件等)的已知的良好映像来更新系统的故障可编程设备。在该当前的方法中,可编程设备的用户在问题发生时(例如,当可编程设备故障时等)通知中央配置服务器方面起到重要作用。例如,故障可编程设备的用户可以打开要由服务设施服务的服务话单,并且与来自诊断问题的服务设施的代理交谈并推荐修复动作。
[0004] 随着组成计算机系统的互连的可编程设备的数量增加,这些设备对于前述段落中所描述的方法而言变得过多而无法工作。这是因为服务设施可能没有足够的资源来解决可能故障的许多设备。在该段落中所描述的问题进一步由于可编程设备上(或故障设备的用户可用的计算系统上)潜在地缺乏用户接口而加剧,这可能妨碍促进用户的设备的检测、诊断以及修复。无法解决故障设备可能进而对一个或多个互连的设备的可用性导致不利的影响。因此,缺乏实现对安装在计算机系统的一个或多个互连的可编程设备上的计算机程序进行恢复或修复的资源可能对计算机系统的操作完整性增加险。
[0005] 上述问题在由互连的可编程设备构成的计算机系统中也加剧,因为这样的系统依赖于集中式通信模型,其以其它方式被称为服务器/客户端模型。在服务器/客户端模型中使用的服务器是可能破坏整个计算机系统的运转的潜在的瓶颈和故障点。另外,这些服务器易于受到安全性危害(例如,中间人攻击等),因为与计算机系统的多个设备相关联的所有数据必须经过服务器。因此,任务为对安装在故障可编程设备上的计算机程序进行恢复或修复的服务器可能故障,这是不期望的。附图说明
[0006] 图1是示出根据一个实施例的包括互连的可编程设备的计算机系统的框图
[0007] 图2是示出根据一个实施例的用于对安装在作为互连的可编程设备构成的计算机系统的一部分的可编程设备上的计算机程序进行软件恢复的技术的序列图。
[0008] 图3是示出根据一个实施例的用于计算机程序的修复和恢复的软件恢复服务的框图。
[0009] 图4是示出根据一个实施例的用于使用分布式分类账(ledger)对计算机程序进行软件恢复的技术的流程图
[0010] 图5是示出根据一个实施例的与本文所描述的技术中的一种或多种一起使用的可编程设备的框图。
[0011] 图6是示出根据另一实施例的与本文所描述的技术中的一种或多种一起使用的可编程设备的框图。

具体实施方式

[0012] 本文所描述的实施例涉及使用计算机系统的多个设备可用的分布式分类账来对安装在计算机系统的一个或多个互连的可编程设备上的(多个)计算机程序进行恢复或修复。本文所描述的实施例具有若干优点,它们针对改进计算机功能。本文所描述的实施例的一个优点在于,这些实施例可以有助于解决在该文档的背景技术部分中所描述的可扩缩性问题。例如,本文所描述的实施例中的一个或多个可以使用计算机系统中的多个可编程设备可用的分布式分类账使得由互连的可编程设备构成的计算机系统中的故障可编程设备自动恢复。对于该示例,分布式分类账促进设备驱动的恢复、故障转移、或替换策略,这在本文中可以称为“自立”策略或“自立”。本文所描述的实施例的另一优点在于,这些实施例可以提供修复或恢复计算机程序的中央通信模型(即,客户端/服务器模型)的替代方案。此外,本文所描述的实施例中的至少一个可以有助于以下中的一个或多个:(i)最小化或消除由互连的可编程设备构成的计算机系统中的设备的故障率,这进而有助于防止系统中的其它设备变得不可用;(ii)最小化或消除由故障设备导致的由互连的可编程设备构成的计算机系统的操作完整性的风险;(iii)最小化或消除将服务器用作用于对安装在计算机系统的互连的可编程设备上的计算机程序进行恢复或修复的唯一看狗设备,因为这样的服务器是可能破坏整个计算机系统的运转的潜在瓶颈和故障点;以及(iv)最小化或消除由安全性危害(例如,中间人攻击等)导致的漏洞,因为与计算机系统的多个互连的设备相关联的数据不一定使用集中式通信模型来传送。
[0013] 在下面的说明书中,为了解释的目的,阐述了若干具体细节以便提供对本文所描述的实施例的全面理解。然而,对于本领域技术人员而言显而易见的是,本文所描述的实施例可以在没有这些具体细节的情况下来实践。在其它实例中,以框图形式示出了结构和设备,以便避免使得本文所描述的实施例不清楚。对没有下标或后缀的数字的引用应理解为引用与所引用的数字相对应的下标和后缀的所有实例。此外,在本公开中使用的语言主要出于易读性和指导目的来选择,并且可以不选择本公开中使用的语言来描写或限制本文所描述的实施例中的发明主题。因此,有必要借助权利要求来确定本文所描述的实施例中的发明主题。在说明书中对“一个实施例”、“实施例”、“另一实施例”或其变形的引用意味着结合实施例描述的特定的特征、结构或特性被包括在本文所描述的实施例中的至少一个实施例中,并且对“一个实施例”、“实施例”、“另一实施例”或其变形的多次引用不应理解为必然都指代同一实施例。
[0014] 如本文所使用的,术语“可编程设备”及其变形是指包括被配置为接收、发送、和/或处理数据信息的电子组件的物理对象。对于一个实施例,电子组件中的一个或多个可以嵌入在物理对象内,例如,在可穿戴设备和移动设备(例如,自动驾驶车辆)中。对于一个实施例,设备还可以包括致动器电动机、控制功能、传感器、和/或在没有人类干预的情况下执行一个或多个任务的其它组件,例如,无人机、自动驾驶车辆、和/或自动化运输机。可编程设备可以指代计算设备,例如(但不限于)移动计算设备、膝上型计算机、可穿戴计算设备、网络设备、物联网(IoT)设备、云计算设备、载具、智能等。
[0015] 如本文所使用的,术语“程序”、“计算机程序”及其变形是指由可编程设备执行以执行任务的一个或多个计算机指令。示例包括但不限于软件和固件。
[0016] 如本文所使用,“软件恢复服务”、“软件恢复”、“软件修复”、“恢复”、“修复”及其变形是指将安装在可编程设备上的计算机程序修改、重新安装、和/或删除为计算机程序的已知的良好配置。为了简化,术语“软件恢复”或“软件恢复服务”将用于指代如本文所描述的“软件恢复服务”、“软件恢复”、“软件修复”、“恢复”以及“修复”。软件恢复服务包括但不限于使当前安装在可编程设备上的计算机程序回滚到该计算机程序的最后已知的良好配置的回滚操作。使计算机程序回滚的示例包括但不限于主版本回滚、次版本回滚、补丁、热修补、维护发布以及服务包。因此,使计算机程序回滚包括从计算机程序的版本移至另一版本,以及从计算机程序的版本的一个状态移至计算机程序的同一版本的另一状态。回滚可以用于修补安全漏洞和其它程序错误(bug),通过添加新特征来改进设备的功能,改进功率消耗和性能,修复故障可编程设备等。回滚可以被视为可编程设备的生命周期中的重要特征。关于软件恢复服务的附加细节将在下面结合图1-4中的一个或多个进行描述。
[0017] 如本文所使用的,术语“计算机系统”可以指代单个可编程设备或一起工作以执行被描述为在计算机系统上或由计算机系统执行的功能或操作的多个可编程设备。对于由多个可编程设备构成的计算机系统的一个实施例,设备中的一个或多个可以执行与由系统中的一个或多个其它设备执行的一个或多个功能或操作不同的至少一个功能或至少一个操作。对于一个示例,计算机系统的第一设备可以执行与由计算机系统的第二设备执行的第二功能或操作不同的第一功能或操作。对于由多个可编程设备构成的计算机系统的另一实施例,设备中的一个或多个可以具有在其上执行的与在系统中的一个或多个其它设备上执行的一个或多个功能或操作不同的至少一个功能或至少一个操作。例如,计算机系统的第一设备可以具有在其上执行的与在计算机系统的第二设备上执行的第二功能或操作不同的第一功能或操作。
[0018] 如本文所使用的,“计算机网络”、“网络”及其变形是指可以彼此交换数据的多个互连的可编程设备。例如,计算机网络可以使得由互连的可编程设备构成的计算机系统能够彼此进行通信。计算机网络的示例包括但不限于对等网络、诸如局域网(LAN)的任何类型的数据网络、诸如互联网的广域网(WAN)、光纤网络、存储网络、或其组合,可以是有线的或无线的。在计算机网络中,互连的可编程设备使用通信机制来彼此交换数据,通信机制是指允许网络中的设备之间的通信的一个或多个设施。互连的可编程设备之间的连接使用有线或无线通信链路来建立。通信机制还包括联网硬件(例如,交换机、网关、路由器、网桥、调制解调器、无线接入点、联网缆线、线路驱动器、交换机、集线器、中继器等)。
[0019] 如本文所使用的,“看门狗系统”、“看门狗设备”、“看门狗”及其变形是指以接收来自可编程设备的响应为目的在周期基础上向可编程设备发出消息(例如,信号、测通(ping)分组等)的硬件(例如,一个或多个处理单元、电子电路等)、软件(例如,由一个或多个处理单元或电子电路执行的计算机程序等)、或这两者的组合。当看门狗在预先确定的时间段内没有接收到来自可编程设备的对其消息的响应时,则看门狗设备可以针对未能对看门狗设备进行响应的设备启动一个或多个软件恢复服务,如结合本文阐述的实施例中的一个或多个所描述的。预先确定的时间段可以基于从看门狗消息由看门狗设备发送时的时间或从看门狗消息由客户端设备接收时的时间。对于一个实施例,看门狗设备是被配置为执行该段落中所描述的操作的可编程设备。
[0020] 如本文所使用的,“看门狗消息”、“看门狗测通”、“消息”、“测通”及其变形是指由看门狗设备发送到由互连的可编程设备构成的计算机系统中的可编程设备的信号,可编程设备必须在预先确定的时间量内对该信号进行响应以指示安装在可编程设备上的计算机程序无错误地操作(例如,程序按预期地操作等)。对看门狗消息的响应在本文中还可以称为“看门狗响应消息”。
[0021] 如本文所使用的,术语“分布式分类账”及其变形是指由互连的可编程设备构成的计算机系统的多个可编程设备和/或多个看门狗可用的数据库。分布式分类账的一个关键特征在于,不存在维护分布式分类账的主副本的中央数据储存库。相反,分布式分类账存储在许多不同的数据储存库中,并且共识协议确保分类账的每个副本与分布式分类账的每个其它副本相同。例如,分布式分类账可以基于以链为基础的技术,其在密码和密码货币(例如,比特币、以太坊等)领域是公知的。分布式分类账可以提供用于由互连的可编程设备构成的计算机系统中的一个或多个可编程设备和/或一个或多个看门狗设备中的软件恢复的公开和/或非公开可验证的分类账。分布式分类账的变化(例如,对看门狗消息的成功响应,对看门狗消息的失败响应等)表示安装在由互连的可编程设备构成的计算机系统的一个或多个可编程设备上的一个或多个计算机程序的工作条件。这些变化可以添加到和/或记录在分布式分类账中。对于一个实施例,要求由互连的可编程设备构成的计算机系统的多个可编程设备和/或看门狗设备对变化进行确认,将变化添加到其分布式分类账的副本,并且向整个计算机系统广播其更新后的分布式分类账。具有分布式分类账的可编程设备和/或看门狗设备中的每个可以根据确认协议来对变化进行确认。对于一个实施例,确认协议定义了包括互连的可编程设备的计算机系统中的互连设备关于对分布式分类账的变化和/或添加达成一致的过程。对于一个实施例,确认协议可以包括通过比特币或公开共识协议实现的工作证明(proof-of-work)协议。对于另一实施例,确认协议可以包括私有和/或定制确认协议。分布式分类账使得由互连的可编程设备构成的计算机系统中的互连设备能够经由验证协议关于对分布式分类账的一个或多个变化和/或添加(例如,包括对看门狗消息的成功响应,包括对看门狗消息的失败响应等)达成一致。
[0022] 图1是示出根据一个实施例的由互连的可编程客户端设备102A-N(下文称为“客户端设备102A-N”)构成的计算机系统100的框图。如图所示,计算机系统100包括多个客户端设备102A-N、多个可编程看门狗设备104A-N(下文称为“看门狗设备104A-N”)、一个或多个软件恢复服务199以及一个或多个网络105。
[0023] 客户端设备102A-N中的每个可以是物联网(IoT)设备、移动计算设备、云计算设备、逻辑计算设备、或虚拟计算设备。另外,客户端设备102A-N中的每个可以包括电子组件130A-N。组件130A-N的示例包括:(多个)处理单元(例如,微处理器协处理器、其它类型的集成电路(IC)等);对应的存储器;和/或其它相关电路。对于一个实施例,客户端设备102A-N中的每个包括自立(self-reliance)逻辑/模块101中的对应的一个自立逻辑/模块,其实现分布式分类账103。分类账103用于对安装在客户端设备102A-N中的一个或多个上的一个或多个计算机程序进行软件恢复。对于一个实施例,分布式分类账103可以跨设备102A-N和
104A-N中的至少两个分布。以此方式,分布式分类账103可以用于避免用于计算机程序的软件恢复的中央通信技术(例如,服务器/客户端模型)的一个或多个缺点。此外,并且如图1所示,对于一个实施例,分布式分类账103被复制在客户端设备102A-N和看门狗设备104A-N上并且对于客户端设备102A-N和看门狗设备104A-N是可用的。因此,对于该实施例,看门狗设备104A-N中的每个包括与贯穿该文档结合图1-6描述的自立逻辑/模块101类似的对应自立逻辑/模块101。
[0024] 自立逻辑/模块101中的每个可以实现为硬件(例如,(多个)处理单元的电子电路、专用逻辑等)、软件(例如,与由(多个)处理单元执行的计算机程序相关联的一个或多个指令、在通用计算机系统或专用机器上运行的软件等)或其组合中的至少一个。对于一个实施例,自立逻辑/模块101中的每个执行用于对安装在一个或多个互连的客户端设备102A-N上的计算机程序进行软件恢复的技术的一个或多个实施例,如本文所描述的。
[0025] 对于一些实施例,客户端设备102A-N的自立逻辑/模块101中的每个被实现为具有防篡改特征的一个或多个专用处理器。这些类型的专用处理器通常被称为防篡改处理器。这种专用处理器的示例包括可信平台模块(TPM)密码处理器、专用集成电路(ASIC)、专用指令集处理器(ASIP)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、任何类型的密码处理器、嵌入式处理器、协处理器、或能够处理指令的具有防篡改特征的任何其它类型的逻辑。以此方式,可以以有助于最小化或防止安全漏洞同时有助于改进客户端设备102A-N对软件故障的复原力的安全方式对自立逻辑/模块101和分布式分类账103进行实现和维护。
对于另外的实施例,可以与组件130A-N分离地对自立逻辑/模块101和/或分布式分类账103进行维护。例如,自立逻辑/模块101可以实现为与组件130A-N分离的一个或多个专用处理器。
[0026] 在计算机系统100中,客户端设备102A-N中的每个包括用于执行其操作和/或功能的一个或多个计算机程序(例如,软件、固件等)。此外,客户端设备102A-N的(多个)计算机程序中的每个可以随着(多个)计算机程序故障和/或变得有错误而回滚。这些回滚通常以主版本回滚、次版本回滚、补丁、热修补、维护发布、服务包等的形式。使安装在可编程设备102A-N上的(多个)计算机程序回滚的目标是使得这样的设备回到已知的良好操作状态(在客户端设备的故障或有错误的操作之前)。回滚可以有助于修补安全漏洞和其它程序错误,使设备功能返回到可用的操作状态,或者使功耗和性能返回到正常状态。因此,这样的回滚可以视为IoT设备、移动计算设备、云计算设备、逻辑计算设备以及虚拟计算设备的生命周期中的重要特征。
[0027] 对于特定实施例,自立逻辑/模块101中的每个在客户端设备102A-N的一个或多个处理器的可信执行环境(TEE)中实现。TEE的示例可以包括在基于Intel软件防护扩展(SGX)技术的处理器和/或密码处理器、基于Intel收敛安全性和可管理性引擎(CSME)技术的处理器和/或密码处理器、基于Intel可信执行技术(TXT)技术的处理器和/或密码处理器、基于可信平台模块(TPM)技术的处理器和/或密码处理器、基于ARM TrustZone技术的处理器和/或密码处理器等中。以此方式,TEE用作与安装在客户端设备102A-N上的其它计算机程序(例如,软件、固件等)并行地运行的分布式分类账103的隔离环境。对于一个示例,自立逻辑/模块101可以在TPM密码处理器、ASIC、ASIP、FPGA、DSP、任何类型的密码处理器、嵌入式处理器、协处理器、或能够处理指令的具有防篡改特征的任何其它类型的逻辑的TEE中实现。
[0028] 计算机系统100中的看门狗设备104A-N中的每个是执行包括看门狗消息的发送及其接收的各种类型的处理的计算机系统。另外,看门狗设备104A-N中的每个可以包括电子组件131A-N。组件131A-N的示例包括:(多个)处理单元(例如,微处理器、协处理器、其它类型的集成电路(IC)等);对应的存储器;和/或其它相关电路。因此,看门狗设备104A-N中的每个可以是各种类型的计算机中的任一种,包括通用计算机、工作站、个人计算机、服务器等。对于一个实施例,计算机系统100中的看门狗设备104A-N与外部实体(例如,提供软件恢复服务199的服务设施等)相关联。因此,看门狗设备104A-N可以有助于(多个)软件恢复服务199的递送,而无需用户联系提供软件恢复服务199的服务设施来启动软件恢复操作。提供软件恢复服务199的服务设施的示例包括但不限于基于互联网的服务设施,其促进对安装在一个或多个客户端设备102A-N上的计算机程序的软件恢复。下面将至少结合图3来论述关于软件恢复服务199的附加细节。对于一个实施例,本文关于客户端设备102A-N的自立逻辑/模块101(以及分布式分类账103)提供的描述适用于看门狗设备104A-N的自立逻辑/模块101(以及分布式分类账103)。例如,并且对于一个实施例,看门狗设备104A-N的自立逻辑/模块101中的每个被实现为具有防篡改特征的一个或多个专用处理器。上面描述了专用处理器。对于另一示例,并且对于一个实施例,看门狗设备104A-N的自立逻辑/模块101中的每个在看门狗设备104A-N的一个或多个处理器的TEE中实现。
[0029] 对于一些实施例,回滚可以以软件映像(例如,磁盘映像、进程映像等)的形式。对于其它实施例,回滚可以以软件包的形式(例如,具有保留可执行代码以及由该代码使用的资源的标准化分层结构的目录等)。
[0030] 客户端设备102A-N和看门狗设备104A-N在计算机系统100内经由一个或多个网络105进行通信。这些网络105包括一个或多个不同类型的计算机网络,例如,互联网、企业网络、数据中心、光纤网络、存储网络、WAN、和/或LAN。网络105中的每个可以提供在电学域和/或光学域中操作的设备102A-N和看门狗设备104A-N之间的有线和/或无线连接,并且还采用任何数量的网络通信协议(例如,TCP/IP)。例如,计算机系统100内的网络105中的一个或多个可以是无线保真(Wi- )网络、 网络、 网络、和/或本领域普通
技术人员在阅览本公开时将意识到的任何其它合适的基于无线电的网络。本领域普通技术人员将意识到,(多个)网络105还可以包括任何要求的联网硬件,例如,被配置为通过(多个)网络105传送数据的网络节点。网络节点的示例包括但不限于交换机、网关、路由器、网桥、调制解调器、无线接入点、联网缆线、线路驱动器、交换机、集线器以及中继器。对于实施例,客户端设备102A-N中的至少一个和看门狗设备104A-N中的至少一个实现网络节点的功能。
[0031] 计算机系统100内的网络105中的一个或多个可以被配置为实现计算机虚拟化,例如,虚拟私人网络(VPN)和/或基于云的联网。对于一个实施例,客户端设备102A-N中的至少一个和看门狗设备104A-N中的至少一个包括多个虚拟机(VM)、容器、和/或用于处理计算指令并且通过(多个)网络105发送和/或接收数据的其它类型的虚拟化计算系统。此外,客户端设备102A-N中的至少一个和看门狗设备104A-N中的至少一个可以被配置为支持多租户架构,其中每个租户可以实现其自己的安全且隔离的虚拟网络环境。虽然图1中没有示出,但是计算机系统100可以使得客户端设备102A-N中的至少一个和/或看门狗设备104A-N中的至少一个能够连接到各种其它类型的可编程设备,例如,VM、容器、主机、存储设备、可穿戴设备、移动设备、和/或被配置为使用(多个)有线或无线网络105发送和/或接收数据的任何其它设备。
[0032] 对于一些实施例,(多个)网络105包括与客户端设备102A-N中的至少一个和看门狗设备104A-N中的至少一个一起使用的蜂窝网络。对于该实施例,蜂窝网络可以能够支持各种客户端设备102A-N和看门狗设备104A-N,包括但不限于计算机、膝上型计算机、和/或各种移动设备(例如,移动电话、自动驾驶载具、船只以及无人机)。蜂窝网络可以替代上述其它网络105中的至少一个使用和/或与其一起使用。蜂窝网络是已知的,因此在该文档中没有对其进行详细描述。
[0033] 在一些情形中,安装在客户端设备102A-N上的(多个)计算机程序意在在没有任何阻碍或不利分支的情况下进行操作。然而,这些计算机程序中的一个或多个有时可能引入问题(例如,设备的错误操作、设备的禁用等)。在一些场景中,安装在客户端设备102A-N中的单个客户端设备(例如,客户端设备102A等)上的错误的计算机程序可以禁用一个或多个客户端设备102A-N(例如,一个或多个客户端设备102B-N等),这可能进而对计算机系统100的操作完整性造成风险。(多个)软件恢复服务199可以用于通过重新安装已知按预期地操作的已安装计算机程序的先前版本来帮助解决安装在客户端设备102A-N中的一个或多个上的错误的计算机程序。
[0034] 如由自立逻辑/模块101实现的分布式分类账103可以有助于将在紧接的前述段落中所描述的问题中的至少一个问题最小化或消除。这是因为分布式分类账103基于分散式共识的概念来进行操作,与当前使用的集中式共识的概念相反。集中式共识是客户端/服务器模型的基础,并且它要求一个中央数据库或服务器用于决定如何将(多个)软件恢复服务提供给(多个)客户端设备102A-N或将哪个(哪些)软件恢复服务提供给(多个)客户端设备102A-N,作为结果,这可能创建易受安全漏洞影响的单个故障点。相反,分布式分类账103基于分散式方案来进行操作,其不要求中央数据库用于决定如何将(多个)软件恢复服务提供给客户端设备102A-N中的一个或多个或将哪个(哪些)软件恢复服务提供给客户端设备
102A-N中的一个或多个。对于一个实施例,计算机系统100使得其节点(例如,客户端设备
102A-N、看门狗设备104A-N等)能够在独特链中——即,在分布式分类账103中——持续且按顺序地记录客户端设备102A-N与看门狗设备104A-N之间的看门狗通信。对于一个实施例,分布式分类账103是基于密码与区块链技术的组合的客户端设备102A-N与看门狗设备
104A-N之间的看门狗通信的仅追加记录。对于该实施例,分布式分类账103的每个接连区块包括客户端设备102A-N与看门狗设备104A-N之间的紧接前述看门狗通信的独特指纹。该独特指纹可以包括以下中的至少一个:(i)如密码领域已知的散列(例如,SHA、RIPEMD、Whirlpool、Scrypt、HAS-160等);或(ii)利用公共密钥、私有密钥、或散列生成的数字签名,如生成数字签名领域已知的。数字签名算法的示例包括安全不对称密钥数字签名算法。分布式分类账103的一个优点在于,即使在计算机系统100的一部分不可用的情形中,其也可以有助于软件恢复,这进而移除了对于客户端/服务器模型中所要求的中央数据库或服务器的需求。分布式分类账103的另一优点在于,即使在故障客户端设备102A-N的用户尚未联系能够提供(多个)软件恢复服务199的服务设施的情形中,其也可以有助于软件恢复,这进而能够有助于计算机系统100中的故障客户端设备102A-N的自动软件恢复,并且有助于改进对计算机系统100内的故障的复原力。分布式分类账103的又一优点在于,其能够防止在客户端设备102A-N中的故障客户端设备上执行不必要的回滚操作。特别地,分布式分类账
103能够有助于确保在客户端设备102A-N中的故障客户端设备上执行不多于一次回滚操作。例如,当客户端设备102A同时或近似同时接收到来自看门狗设备104A的第一看门狗消息以及来自看门狗设备104B的第二看门狗消息时,自立逻辑/模块101在分布式分类账103中记录来自客户端设备102A的对看门狗消息中的任一个的响应作为对两个消息的响应。对于该示例,由自立逻辑/模块101在分布式分类账103中创建的记录经由(多个)网络105传送到分布式分类账103的存储在其它自立逻辑/模块101上或其它自立逻辑/模块101可用的每个其它副本。以此方式,并且对于该示例,分布式分类账103使得所有客户端设备102A-N和/或看门狗设备104A-N能够维护对看门狗消息的响应的记录,这可以有助于确定故障点以及启动(多个)软件恢复服务199。
[0035] 作为区块链的分布式分类账103包括(多个)客户端设备102A-N和/或看门狗设备104A-N可访问的存储在其报头中的信息,这使得(多个)客户端设备102A-N和/或看门狗设备104A-N能够“查看”以下中的一个或多个:(i)已经由看门狗设备104A-N发送到(多个)客户端设备102A-N的看门狗消息;以及(ii)对已经由(多个)客户端设备102A-N发送到看门狗设备104A-N的看门狗消息的响应。以此方式,分布式分类账103是这样的软件设计方法:将客户端设备102A-N和/或看门狗设备104A-N绑定在一起,以使得共同遵循用于发布或记录它们保存何种信息的相同共识过程,并且其中所有相关的交互通过密码进行验证。分布式分类账103可以是私有区块链或公共区块链。此外,分布式分类账103可以是许可的区块链或无许可的区块链。
[0036] 与基于区块链技术的分布式分类账相关联的一个问题在于它们是资源密集的。即,它们要求随着分类账在越来越多的设备上复制而增长的大量的处理能力、存储容量以及计算资源。该问题至少部分地基于包括分类账的每个节点或设备必须处理每个事务以便于确保安全性的要求,这会变得计算昂贵。因此,包括分类账的每个设备可能要求访问相当大量的计算资源。在具有固定或有限计算资源的可编程设备(例如,移动设备、载具、智能手机、膝上型计算机、平板计算机、以及媒体播放器、微控制台、IoT设备等)上,对分类账进行处理可能证明是困难的。
[0037] 本文所描述的分布式分类账103的至少一个实施例可以有助于使上述资源密集问题最小化。对于一个实施例,分布式分类账103不被构造为所有其区块都存在于所有客户端设备102A-N和/或看门狗设备104A-N上的整体区块链。而是,分布式分类账103被构造为基于例如用于以太坊区块链的轻客户端协议、用于比特币区块链的轻客户端协议等的轻分类账。以此方式,分布式分类账103可以在按需的基础上在客户端设备102A-N和/或看门狗设备104A-N上复制。对于一个实施例,客户端设备102A-N和/或看门狗设备104A-N中的资源受约束的任一个设备将仅存储分类账103的最近期的区块(与分类账103的所有区块相反)。对于该实施例,由特定设备或实体存储的区块的数量可以基于其存储和处理能力来动态地确定。例如,客户端设备102A-N和/或看门狗设备104A-N中的任一个可以仅存储(并且还进行处理)分类账103的当前区块以及紧接着的后面的区块。这确保了向分类账103添加新的区块所要求的任何共识协议能够成功地执行,而不要求所有客户端设备102A-N和/或看门狗设备104A-N作为大的整体区块链来存储分类账103。对于另一实施例,分类账103的每个区块可以基于轻客户端协议,以使得区块分解成两个部分:(a)示出与看门狗通信(即,看门狗消息和对看门狗消息的响应)中的哪一个被提交给区块有关的元数据的区块报头;以及(b)包含用于区块中的已提交的看门狗通信的实际数据的事务树。对于该实施例,区块报头可以包括以下中的至少一个:(i)前一区块的区块报头的散列;(ii)事务树的Merkle根;(iii)工作一次使用数的证明;(iv)与区块中的已提交的看门狗通信相关联的时间戳;(v)用于验证区块中存在已提交的看门狗通信的Merkle根;或(vi)用于验证客户端设备102A-N和/或看门狗设备104A-N中的哪一个生成已提交的看门狗通信的Merkle根。对于该实施例,具有分类账103的客户端设备102A-N和/或看门狗设备104A-N可以使用区块报头来对整个分类账103保持跟踪,并且仅当需要对分类账103执行处理操作(例如,将新的区块添加到分类账103等)时才请求特定区块的事务树。对于又一实施例,可以通过基于与用于以太坊区块链的轻客户端协议相关联的时间点斩断(epoch Slasher)技术来使分类账103更加资源高效。
[0038] 在一些实例中,要求区块链同步算法来跨客户端设备102A-N和/或看门狗设备104A-N维护分类账103。此处,区块链同步算法使得计算机系统100的节点(例如,客户端设备102A-N和/或看门狗设备104A-N中的一个或多个)能够执行将事务添加到分类账103并且关于分类账103的内容达成一致的过程。区块链同步算法允许客户端设备102A-N和/或看门狗设备104A-N中的一个或多个使用作为区块链的分类账103,以将合法事务(即,由看门狗消息及其响应构成的看门狗通信)与由攻击者(例如,中间人攻击等)在计算机系统100中进行的危害或包括假的/有错误的/有缺陷的信息的尝试区分开。
[0039] 执行区块链同步算法被设计为资源密集的,以使得分类账103的单独的区块必须包含被认为有效的证明。证明的示例包括但不限于工作的证明以及权益的证明。每个区块的证明由客户端设备102A-N和/或看门狗设备104A-N在其接收到区块时进行验证。以此方式,区块链同步算法有助于允许客户端设备102A-N和/或看门狗设备104A-N达到安全的、防篡改的共识。对于一个实施例,区块链同步算法嵌入在计算机系统100中并且由客户端设备102A-N和/或看门狗设备104A-N中的至少一个来执行。例如,客户端设备102A-N和/或看门狗设备104A-N中的一个或多个可以包括专用于执行并实施区块链同步算法的FPGA或其它类型的处理器。对于该示例,FGPA或其它类型的处理器生成要包括在分类账103中的区块的证明。另外,并且对于该示例,区块仅通过验证和共识(如上面描述的)添加到分类账103。区块链同步算法可以由以下来执行:(i)客户端设备102A-N和/或看门狗设备104A-N中的任一个;或(ii)多个设备102A-N和/或看门狗设备104A-N。对于另外的实施例,生成新的区块的证明是响应于在给定计算机系统100中的资源的可用性的情况下自动确定操作的复杂度而执行的。以此方式,能够更高效地利用计算机系统100的资源。
[0040] 对于另一实施例,通过例如同步设备(未示出)在计算机系统100之外执行区块链同步算法。该同步设备可以与具有分类账103的客户端设备102A-N和/或看门狗设备104A-N中的一个或多个配对。例如,客户端设备102A-N中的一个或多个可以经由(多个)网络105与系统100之外的同步设备配对。对于该示例,同步设备包括类似于组件130A-N(上面描述的)的电子组件。另外,并且对于该示例,使用一种或多种安全通信技术将每个事务经由(多个)网络105传送到同步设备。此处,同步设备生成验证和共识所要求的证明并将其传送回系统100。对于一个实施例,每个事务包括以下中的一个或多个:(i)看门狗消息;(ii)已发送或已接收的看门狗消息的记录;(iii)对看门狗消息的响应;以及(iv)已发送或已接收的对看门狗消息的响应的记录。
[0041] 对于又一实施例,可以跨系统100维护分类账103,而不使用区块链同步算法。作为第一示例,分类账103可以实现为分布式数据库。对于第二示例,分类账103可以跨如分布式版本控制系统(DVCS)的系统100进行维护,其有时也被称为分布式修订控制系统(DVRS)。DVCS的示例包括但不限于ArX、BitKeeper、Codeville、Darcs、DCVS、Fossil、Git以及Veracity。
[0042] 还可以使分类账103作为紧接的前述实施例的组合。对于一个实施例,分类账103响应于确定系统100的资源对于资源密集的同步过程是足够的而利用区块链同步算法来实现。对于该实施例,分类账103响应于确定系统100的资源对于同步过程不充足而不利用区块链同步算法来实现。
[0043] 使得客户端设备102A-N和/或使得看门狗设备104A-N能够将看门狗通信(例如,看门狗消息、对看门狗消息的响应等)记录到分类账103可以基于增强隐私标识(EPID)协议,例如,零知识证明协议。对于基于零知识证明协议的实施例,客户端设备102A-N和/或看门狗设备104A-N中的一个或多个(例如,设备102A、设备104A等)用作验证器,该验证器确定客户端设备102A-N和/或看门狗设备104A-N中的其它设备是否是这样的一组设备中的成员:该组设备已经被授予使其动作被处理并且添加到表示为分类账103的区块链的特权。对于该实施例,客户端设备102A-N和/或看门狗设备104A-N中的具有对分类账103进行访问的特权的每个设备密码地将其对应的公共密钥与发送到验证器的零知识证明进行绑定,导致公共密钥被识别为已经获得了对表示为分类账103的区块链执行动作的许可的身份。对于一个实施例,用作验证器的(多个)客户端设备102A-N和/或(多个)看门狗设备104A-N将经验证的公共密钥添加到分类账103。因此,分类账103可以维护其自己的能够与分类账103交互的客户端设备102A-N和/或看门狗设备104A-N的列表。以此方式,用作验证器的(多个)客户端设备102A-N和/或(多个)看门狗设备104A-N确保设备102A-N和/或看门狗设备104A-N中的对分类账103进行写入的任一个设备被授权这样做。
[0044] 为了有助于安全性,并且对于一个实施例,分类账103可以是(多个)看门狗设备104A-N仅经由公共密钥密码可访问的。此处,与分类账103相关联的公共密钥可以利用与分类账103相关联的私有密钥在按需的基础上散布到(多个)看门狗设备104A-N,与分类账103相关联的私有密钥仅由客户端设备102A-N的用户已知。以此方式,公共密钥密码可以用于两个功能:(i)使用公共密钥来认证看门狗消息源自看门狗设备104A-N中的作为已配对的私有密钥的持有者的一个看门狗设备;或者(ii)利用公共密钥对由看门狗设备104A-N中的一个提供的看门狗消息进行加密,以确保仅作为已配对的私有密钥的持有者的客户端设备
102A-N能够对看门狗消息进行解密和响应。例如,并且对于一个实施例,看门狗设备104A无法将看门狗通信(例如,看门狗消息、对看门狗消息的响应等)提交给分类账103,除非看门狗设备104A经由公共密钥密码被授予对分类账103的访问权和/或除非看门狗实体104A已经经由上述零证明协议进行验证。虽然公共密钥可以是对看门狗设备104A-N公开可用的,但是私有密钥和/或经由零证明协议的先前验证对于将看门狗通信(例如,看门狗消息、对看门狗消息的响应等)提交给分类账103是必要的。对于该示例,可以响应于由用户提供给客户端设备102A的输入,由客户端设备102A的逻辑/模块101经由(多个)网络105将私有密钥提供给看门狗设备104A。基于公共密钥密码和/或经由零证明协议的验证的组合,使得看门狗设备104A能够将看门狗通信(例如,看门狗消息、对看门狗消息的响应等)提交给分类账103。如紧接的前一示例所示,仅客户端设备102A-N的用户能够向看门狗设备104A-N提供对分类账103的访问权。这具有最小化或消除安全漏洞的风险(例如,中间人攻击、窃听、未授权的数据修改、拒绝服务攻击、嗅探器攻击、身份欺骗等)的优点,因为用户总是知道看门狗设备104A-N中的哪些看门狗设备已经经由分类账103被授予其设备102A-N。对于一个实施例,私有密钥可以包括对看门狗设备104A-N授予在有限时间段(例如,10分钟、1小时、任何其它时间段等)内对分类账103的访问权的信息。因此,通过防止(多个)看门狗设备104A-N对设备102A-N和/或分类账103具有无约束的访问权来进一步提升安全性。
[0045] 基于区块链技术的分布式分类账103的一个特征在于这样的能力:通过发现产生用于给定数据区块的有效散列的一次使用数,解决由于对分类账103有访问权的设备102A-N和/或看门狗设备104A-N试图将区块添加到链末尾而引起的分岔。当发现两个区块都宣称引用相同的前一区块时,在链中创建分岔。系统100中的设备102A-N和/或看门狗设备104A-N中的一些将试图发现分岔的一端上的下一区块,而设备102A-N和/或看门狗设备104A-N中的其它设备将从分岔的另一端工作。最终,分岔中的一个将在长度上超越另一个,并且最长的链通过共识作为有效链被接受。这通常是利用共识算法或协议来实现的。因此,试图改变区块的入侵者必须不仅重新发现用于每个后续区块的有效散列,而且必须比对当前接受的链工作的每个其他人做得更快。因此,在某些数量的区块已经链接到特定区块上之后,证明区块的内容是虚假的变为资源密集的任务,这有助于最小化或消除安全漏洞。对于一个实施例,这种解决分岔的能力能够用于执行对处理一个或多个有错误的计算机程序而言必要的回滚操作。
[0046] 检测计算机程序的配置中的缺陷可能由于对安装在客户端设备102A-N上的配置进行的审计、论证、或其它调查而发生。该调查可以包括但不限于基于记录在分类账103中的信息而执行的调查。一个或多个逻辑/模块101可以使用一个或多个软件配置管理(SCM)技术来检测安装在客户端设备102A-N上的计算机程序中的缺陷。SCM技术的一个示例是看门狗定时技术和/或心跳定时技术,其能够用于检测由于安装在客户端设备102A-N上的计算机程序而产生的缺陷。看门狗定时技术包括例如,客户端设备102A在定时器到期之前周期性地重置定时器以指示设备102A的操作中没有错误。当客户端设备102A不重置其定时器时,假设设备102A的操作有缺陷。因此,当一个或多个逻辑/模块101确定客户端设备102A未能在计算机程序的执行期间重置其定时器时,一个或多个逻辑/模块101能够检测到安装在客户端设备102A上的计算机程序中的缺陷。心跳定时技术通常包括,客户端设备102A将具有有效载荷的心跳信号发送到计算机系统(例如,系统100等)中的另一设备(例如,看门狗设备104中的任一个等)以指示设备102A正确地操作。因此,当一个或多个逻辑/模块101确定客户端设备102A未能在由客户端设备102A执行已安装的计算机程序期间按时发送其心跳信号时,一个或多个逻辑/模块101能够检测到安装在客户端设备102A上的计算机程序中的缺陷。看门狗定时技术和/或心跳定时技术可以在客户端设备102A的处理器(例如,容错微处理器等)中实现。对于SCM技术的另一示例,异常处理技术(例如,语言级特征、错误代码的检查等)可以由逻辑/模块101用来确定安装在客户端设备102A上的计算机程序是有缺陷的。对于当客户端设备102A包括或执行脚本时应用的异常处理技术的特定示例,当一个或多个逻辑/模块101确定客户端设备102A未能输出或返回结果消息(例如,退出状态消息、结果值等)以指示在由客户端设备102A执行已安装的计算机程序期间脚本已经成功地运行或执行时,一个或多个逻辑/模块101可以确定安装在客户端设备102A上的计算机程序是有缺陷的。一个或多个逻辑/模块101可以请求来自运行或执行脚本的客户端设备102A的(多个)处理器的结果消息。响应于检测到有缺陷的计算机程序,逻辑/模块101中的至少一个可以发起回滚操作的执行,以使计算机程序返回到前一状态——即,使计算机程序从不良的状态返回到在分类账103的区块中记录的正确运转的状态。这在更新的实际效果可能是未知或猜测的情形中是重要的,其可能导致计算机程序处于不一致的状态。
[0047] 对于一个实施例,在紧接的前一段落中执行的操作响应于一个或多个逻辑/模块101对分类账103进行检查以确定客户端设备(例如,客户端设备102A等)在预先确定的时间量内未能对看门狗消息进行响应或者未能发送看门狗响应消息而执行。对于另外的实施例,逻辑/模块101彼此传送消息以报告客户端设备(例如,客户端设备102A等)在预先确定的时间量内未能对看门狗消息进行响应或者未能发送看门狗响应消息。当有错误的客户端设备(例如,客户端设备102A等)的逻辑/模块101接收到报告有错误的设备的消息时,则有错误的客户端设备的逻辑/模块101可以启动一个或多个软件恢复服务199。
[0048] 图2是示出根据一个实施例的用于对安装在作为由互连的可编程设备构成的计算机系统(例如,系统100)的一部分的可编程设备102A上的计算机程序进行软件恢复的技术200的序列图。技术200可以由上面结合图1描述的系统100的一个或多个元件执行,例如,实现自立逻辑/模块(例如,上面结合图1描述的自立逻辑/模块101等)的TEE。技术200包括上面结合图1描述的系统100的一些元件。为了简化,这些元件中的一些不再次进行描述。
[0049] 在图2中,示出了客户端设备102A的更详细的版本。图1中的客户端设备102A-N中的任一个可以与图2中的客户端设备102A相同或类似。图2所示的客户端设备102A包括自立逻辑/模块101、用于独立于客户端设备102A的(多个)其它组件130A对逻辑/模块101供电的辅助电源205、安装在客户端设备102A上的一个或多个计算机程序206、(多个)计算机程序的复制映像207(其是(多个)计算机程序206的副本)以及(多个)组件130A(上面结合图1对其进行了描述)。
[0050] 技术200开始于操作210,其中看门狗设备104A将第一看门狗消息发送到客户端设备102A。技术200的一个实施例可以可选地包括操作217,其包括看门狗设备104A提交第一看门狗消息被发送到分布式分类账103的记录。接下来,在操作211处,客户端设备102A中的自立逻辑/模块101可以在预先确定的时间段内对第一看门狗消息进行响应以指示(多个)计算机程序206在没有任何问题的情况下(即,按期望地)进行操作。如图所示,操作212A-B包括对第一看门狗消息被提交给分类账103的成功响应的记录。操作212A可以由看门狗设备104A执行,操作212B可以由客户端设备102A的自立逻辑/模块101执行。对于一个实施例,仅操作212A-B中的一个操作被执行。对于另一实施例,两个操作212A-B都被执行。
[0051] 技术200还包括操作213,其中看门狗设备104A将第二看门狗消息传送到客户端设备102A的自立逻辑/模块101。技术200的一个实施例可以可选地包括操作218,其包括看门狗设备104A提交第二看门狗消息被发送到分布式分类账103的记录。如图2所示,自立逻辑/模块101未能在第二预先确定的时间段内对第二看门狗消息进行响应,第二预先确定的时间段基本上等于或等于上面结合操作211所描述的第一预先确定的时间段。该失败可以指示(多个)计算机程序206没有按正确地(即,按预期地)执行,和/或客户端设备102A可能已经由于有错误的(多个)计算机程序206而故障。响应于自立逻辑/模块101未能对第二看门狗消息进行响应,技术200继续进行到操作214A-B。如图所示,操作214A-B包括对第二看门狗消息被提交给分类账103的未成功响应的记录。操作214A可以由看门狗设备104A执行,并且操作214B可以由客户端设备102A的自立逻辑/模块101执行。对于一个实施例,仅操作214A-B中的一个操作被执行。对于另一实施例,两个操作214A-B都被执行。
[0052] 接下来,技术200继续进行到操作215,其中客户端设备102A的自立逻辑/模块101检测到(多个)计算机程序206有错误或故障。该检测可以响应于自立逻辑/模块101执行操作214B而执行。可替代地或另外地,检测可以响应于在操作214A-B中的一个或多个之后自立逻辑/模块101检查分类账103而执行。在操作215之后,技术200继续进行到操作216。此处,自立逻辑/模块101启动(多个)软件恢复服务199,这将结合图3进行描述。
[0053] 简要参考图3,图3包括与图1和图2中的一个或多个所示的(多个)软件恢复服务199有关的附加细节。可能存在不同类型的(多个)软件恢复服务199——(i)在客户端设备
102A内部的(多个)服务199;以及(ii)(至少部分地)在客户端设备102A外部的(多个)服务
199。在客户端设备102A内部的(多个)服务199的一个示例包括映像207的使用,如图3中的服务302所示。对于一个实施例,服务302包括由逻辑/模块101用于执行软件恢复的(多个)计算机程序206的映像207。例如,逻辑/模块101可以自动地利用映像207中的(多个)程序的已知良好配置来替换有错误的(多个)程序206。以此方式,自立逻辑/模块101可以有助于使得客户端设备102A能够参与恢复,而无需用户干预或与外部类型的(多个)服务199进行通信。在服务302执行期间,自立逻辑/模块在有错误的(多个)计算机程序被来自复制映像的(多个)已知良好计算机程序替换时对任何看门狗消息进行响应。在客户端设备102A内部的(多个)服务199的另一示例包括将客户端设备102A停用,如图3中的服务305所示。将设备(例如,客户端设备102A)停用包括可操作地将设备与由多个互连的可编程设备构成的计算机系统(例如,系统100等)解耦。至少部分地在客户端设备102A外部的(多个)服务199的一个示例包括将由故障客户端设备102A执行的一个或多个操作转移到由互连的可编程设备构成的计算机系统内的附近的或可用的客户端设备,如图3中的服务303所示。至少部分地位于客户端设备102A外部的(多个)服务199的另一示例包括向客户端设备102A的位置分派替换设备或维修实体(例如,技术人员、无人机、货运卡车等)以修补和/或替换客户端设备
102A,如图3中的服务304所示。对于一个实施例,上面结合图1-3中的一个或多个所描述的(多个)服务199中的任一个可以与(多个)其它服务199中的一个或多个相结合。
[0054] 再次参考图2,所示出的客户端设备102A的实施例包括用于独立于客户端设备102A的(多个)其它组件130A而对逻辑/模块101供电的辅助电源205。对于一个实施例,当例如客户端设备102A由于(多个)计算机程序206的有错误的操作而不再可操作时,当客户端设备102A的主电源(未示出)由于(多个)计算机程序206的有错误的操作而不向客户端设备
102A提供电力时等,使用辅助电源205。以此方式,即使当客户端设备102A的主电源(未示出)不向客户端设备102A提供电力时,辅助电源205也可以使得逻辑/模块101能够执行操作
216(即,(多个)服务199的启动)。电源205可以包括电容器、电池太阳能电池、燃料电池、或能够用作替代电源的任何其它电源。对于特定实施例,辅助电源205可以被配置为独立于客户端设备102A的其它组件而对用于实现自立逻辑/模块101的一个或多个防篡改处理器供电。结合图1对防篡改处理器进行描述。
[0055] 现在参考图4,图4是示出根据一个实施例的用于使用分布式分类账103对计算机程序进行软件恢复的技术400的流程图。技术400可以由上面结合图1所描述的系统100的一个或多个元件来执行。例如,实现自立逻辑/模块的TEE(例如,上面结合图1所描述的自立逻辑/模块101等)。技术400包括上面结合图1-3所描述的一个或多个元件。为了简化,不再次对这些元件中的一些进行描述。
[0056] 当看门狗设备104A-B和客户端设备102A-N具有彼此传送看门狗消息的契约时,客户端设备102A-N中的任一个的自立逻辑/模块(例如,逻辑/模块101中的一个或多个)可以执行技术400。对于一个实施例,每个契约可以是智能契约——即,存储在表示为分布式分类账103的区块链中的状态,其促进、认证、和/或强制看门狗设备104A-B与客户端设备102A-N之间的契约的执行。因此,智能契约是作为区块链的分类账103的一个特征,其可以有助于一个或多个自立逻辑/模块101对安装在客户端设备102A-N中的一个或多个中的有错误的或有缺陷的(多个)计算机程序进行定位。这是有益的,因为智能契约可以使得分类账103能够保持稳定,即使在账户维修色在看门狗设备104A-B之间被转移或传递时。如下面并且结合图4所描述的技术400包括看门狗设备104A-B与客户端设备102A-N之间的智能契约的一个或多个示例。
[0057] 技术400开始于操作402,其中客户端设备102A的自立逻辑/模块利用分类账103对安装在客户端设备102A上的计算机程序进行监测。对于一个实施例,如上面结合图1所描述的SCM技术由自立逻辑/模块用于对客户端设备102A进行监测。另外或可替代地,操作402可以包括一个或多个看门狗设备104A-B将看门狗通信(例如,看门狗消息等)发送到客户端设备102A以监测已安装的计算机程序在客户端设备102A上的运转。
[0058] 操作403包括客户端设备102A生成看门狗通信(例如,看门狗响应消息等)并且将看门狗通信发送到一个或多个看门狗设备104A-B。对于一个实施例,操作403根据图1-3中的一个或多个来执行。对于另一实施例,操作403可以在接收或不接收来自看门狗设备104A-B的任何看门狗通信(例如,看门狗消息等)的情况下执行。对于该实施例,客户端设备
102A根据预先确定的时间表(例如,每小时、每秒、每两天、用于对行为进行调度的任何时间段等)来生成并发送看门狗通信(例如,看门狗响应消息等)。
[0059] 技术400继续进行到操作404,其中看门狗通信的一个或多个记录被提交给分布式分类账103。对于一个实施例,一个或多个记录包括以下中的一个或多个:(i)已发送的看门狗响应消息的记录,其可以由客户端设备102A提交给分类账103;(ii)已接收的看门狗响应消息的记录,其可以由看门狗设备104A-N中的接收到看门狗响应消息的一个看门狗设备提交给分类账103;(iii)已发送的看门狗消息的记录,其可以由看门狗设备104A-N中的发送看门狗消息的一个看门狗设备提交给分类账103;以及(iv)已接收的看门狗消息的记录,其可以由接收到看门狗消息的客户端设备102A提交给分类账103。
[0060] 接下来,在操作405处,客户端设备102A的自立逻辑/模块可以检测客户端设备102A是否已经由于安装在其上的有错误的(多个)计算机程序而故障。本地故障检测是指客户端设备102A的自立逻辑/模块确定安装在其上的有错误的(多个)计算机程序已经导致客户端设备102A故障。本地检测是例如基于对分类账103进行检查和/或基于内部SCM技术来确定的,如上面根据图1-3所描述的。如果没有检测到本地故障,则技术400继续进行到操作
406,其中客户端设备102A的自立逻辑/模块可以基于对分类账103进行检查来检测系统100中的其它客户端设备102B-N中的任一个是否已经由于安装在其上的有错误的(多个)计算机程序而故障。远程故障检测是指客户端设备102A的自立逻辑/模块确定安装在一个或多个其它客户端设备102B-N上的有错误的(多个)计算机程序是否已经导致客户端设备102B-N中的这些其它客户端设备故障。远程检测是基于对分类账103进行检查来确定的。例如,远程检测可以根据如上面描述的图1-3来执行。如果没有检测到远程故障,则技术400返回到操作402。
[0061] 当检测到远程故障时,技术400继续进行到操作407。此处,客户端设备102A的自立逻辑/模块将故障消息发送到故障设备的自立逻辑/模块,这可以使得故障设备的自立逻辑/模块触发(多个)软件恢复服务,如下面结合操作408所描述的(或上面结合图1-3中的一个或多个所描述的)。此外,当检测到本地故障时或执行操作407之后,技术400继续进行到操作408。操作408包括一个或多个软件恢复服务的启动,这在上面至少结合图3进一步详细进行了描述。对于技术400的一个实施例,操作408包括操作409-416。
[0062] 操作409包括客户端设备102A的自立逻辑/模块确定安装在客户端设备102A上的有缺陷的(多个)计算机程序是否能够使用来自客户端设备102A的数据来进行本地恢复。这样的数据的示例是在上面进行描述的图2的复制映像207。对于实施例,操作409由针对(多个)程序的复制映像对客户端设备102A进行检查的客户端设备102A的自立逻辑/模块执行,该复制映像是已安装的(多个)计算机程序的最后已知的良好配置。当复制映像存在时,技术400移动到操作413。此处,客户端设备102A的自立逻辑/模块利用来自映像的已知的(多个)良好程序来替换有缺陷的(多个)程序。对于实施例,操作413至少根据上面描述的图2-3来执行。可替代地,当复制映像无法由客户端设备102A的自立逻辑/模块定位时,或者当复制映像无法成功地用于使有错误的(多个)程序回滚时,技术400移动到操作410。此处,关于故障转移设备(即,客户端设备102B-N中的一个或多个)是否能够接管由故障客户端设备102A执行的一个或多个操作的执行做出确定。对于一个实施例,客户端设备102的自立逻辑/模块可以将故障转移消息发送到系统100中的对用于接管客户端设备102A的操作的计算资源进行请求的客户端设备102B-N中的一个或多个。作为响应,客户端设备102B-N的(多个)自立逻辑/模块可以针对客户端设备102B-N的可用资源对客户端设备102B-N进行检查,并且将指示其可用性或缺乏的故障转移响应消息发送回客户端设备102A的自立逻辑/模块。在接收到故障转移响应消息之后,客户端设备102A的自立逻辑/模块选择客户端设备
102B-N中的具有足够可用资源的一个或多个客户端设备作为故障转移设备。可以使用用于选择故障转移设备的任何技术。应意识到,“足够资源”可以取决于要执行的操作而变化。在操作414处,技术400包括将(多个)故障转移设备配置为执行故障客户端设备102A的操作。
[0063] 当故障转移设备不可用时,技术400继续进行到操作411。此处,关于故障客户端设备102A是否可由维修实体(例如,服务技术人员、无人机等)修复或可由实体(例如,服务技术人员、无人机、货运车辆等)替换做出确定。当故障客户端设备102A可修复或可替换时,技术400继续进行到操作415。此处,客户端设备102A的(多个)自立逻辑/模块经由(多个)网络105与适当的服务设施进行通信,以分派替换设备的安装或对故障客户端设备102A的维修。
对于一个实施例,操作415自动地执行和/或无需客户端设备102A的用户发起与适当的服务设施的通信。
[0064] 技术400还包括操作416,其在执行操作411和413-415之后发生。对于实施例,无论是否能够执行操作415,技术400从操作411继续进行到操作416。对于一个实施例,技术400在操作413-415的执行之后继续进行到操作416。在操作416处,关于是否已经解决(多个)程序的故障做出确定。当故障已经被解决时,则技术400返回到操作402(上面描述的)。可替代地,当故障尚未解决时,则技术400继续进行到操作412。此处,将故障客户端设备102A停用。对于一个实施例,客户端设备102A的自立逻辑/模块将客户端设备102A停用。对于另一实施例,客户端设备102A的自立逻辑/模块经由(多个)网络105与能够执行停用过程的适当实体(例如,企业IT服务设施等)进行通信。
[0065] 对于一个实施例,通过创建起源区块(当分类账103缺乏任何区块时)或将区块追加到已经存在的分类账103,可以在操作402期间生成分类账103。对于一个实施例,自立逻辑/模块通过向分类账103提交已传送的看门狗消息的记录和/或已传送的看门狗响应消息的记录来向分类账103注册客户端设备102A-N和/或看门狗设备104A-N。
[0066] 图5是示出根据一个或多个实施例的可以用于实现本文所描述的技术(例如,系统100以及技术200、300和400)的可编程设备500的框图。图5所示的可编程设备500是包括第一处理元件570和第二处理元件580的多处理器可编程设备。虽然示出了两个处理元件570和580,但是可编程设备500的实施例还可以仅包括一个这样的处理元件或包括多于两个这样的处理元件。
[0067] 可编程设备500被示出为点对点互连系统,其中第一处理元件570和第二处理元件580经由点对点互连550耦合。图5所示的互连中的任一个或全部可以实现为多点总线而非点对点互连。
[0068] 如图5所示,处理元件570和580中的每个可以是多核心处理器,包括第一处理器核心和第二处理器核心(即,处理器核心574A和574B以及处理器核心584A和584B)。这样的核心574A、574B、584A、584B可以被配置为执行计算指令代码。然而,其他实施例可以按照期望的使用作为单核心处理器的处理元件。在具有多个处理元件570、580的实施例中,每个处理元件可以按照期望的利用不同数量的核心来实现。
[0069] 每个处理元件570、580可以包括至少一个共享高速缓存546。共享高速缓存546A、546B可以分别存储由处理元件的一个或多个组件(例如,核心574A、574B和584A、584B)使用的数据(例如,计算指令)。例如,共享高速缓存可以对存储在存储器532、534中的数据进行本地缓存,以用于由处理元件570、580的组件更快进行访问。对于一个或多个实施例,共享高速缓存546A、546B可以包括一个或多个中级高速缓存,例如,2级(L2)高速缓存、3级(L3)高速缓存、4级(L4)高速缓存、或其它级别的高速缓存、最后一级高速缓存(LLC)、或其组合。
存储器532、534可以包括表示一个或多个自立逻辑/模块101的软件指令,其包括可由处理元件570和580中的每个访问的分布式分类账103。上面至少结合图1、图2、图3或图4描述了逻辑/模块101和分布式分类账103中的每个。
[0070] 虽然为了使附图简要,图5示出了具有两个处理元件570、580的可编程设备,但是本发明的范围不限于此,并且可以存在任何数量的处理元件。可替代地,处理元件570、580中的一个或多个可以是除了处理器之外的元件,例如,图形处理单元(GPU)、数字信号处理(DSP)单元、现场可编程门阵列、或任何其它可编程处理元件。处理元件580可以是与处理元件570异构的或不对称的。处理元件570、580之间在一系列优点度量方面存在各种差异,包括架构的、微架构的、热的、功率消耗特性等。这些差异可以高效地将其自身展现为在处理元件570、580之中是不对称的和异构的。在一些实施例中,各种处理元件570、580可以位于同一管芯封装中。
[0071] 第一处理元件570还可以包括存储器控制器(MC)逻辑572以及点对点(P-P)互连576和578。类似地,第二处理元件580可以包括MC 582和P-P互连586和588。如图5所示,MC逻辑572和MC逻辑582将处理元件570、580耦合到相应的存储器,即,存储器532和存储器534,其可以是本地附接到相应的处理器的主存储器的部分。虽然MC逻辑572和MC逻辑582被示出为集成到处理元件570、580中,但是在一些实施例中,存储器控制器逻辑可以是处理元件
570、580之外的分立逻辑,而不是集成在其中。
[0072] 处理元件570和处理元件580可以通过链路552和554经由相应的P-P互连576和586耦合到I/O子系统590。如图5所示,I/O子系统590包括P-P互连594和598。此外,I/O子系统590包括将I/O子系统590与高性能图形引擎538耦合的接口592。在一个实施例中,总线(未示出)可以用于将图形引擎538耦合到I/O子系统590。可替代地,点对点互连539可以耦合这些组件。
[0073] 进而,I/O子系统590可以经由接口596耦合到第一链路516。在一个实施例中,第一链路516可以是外围组件互连(PCI)总线或诸如PCI快速总线或另一I/O互连总线的总线,但是本发明的范围不限于此。
[0074] 如图5所示,各种I/O设备514、524可以连同桥接器518一起耦合到第一链路516,桥接器518可以将第一链路516耦合到第二链路520。在一个实施例中,第二链路520可以是低引脚计数(LPC)总线。对于一个实施例,各种设备可以耦合到第二链路520,包括例如键盘/鼠标512、(多个)通信设备526(其进而可以经由一个或多个网络505与一个或多个其它可编程设备进行通信)以及可以包括代码530的诸如磁盘驱动器或其它大容量存储设备的数据存储单元528。代码530可以包括用于执行上面描述的技术中的一种或多种的实施例的指令。此外,音频I/O 524可以耦合到第二链路520。
[0075] 注意,设想其它实施例。例如,代替图5的点对点架构,系统可以实现多点总线或另一这样的通信拓扑结构。虽然链路516和520在图5中被示出为总线,但是可以使用任何期望类型的链路。另外,图5的元件可以替代地使用比图5所示的更多或更少的集成芯片来进行分区。
[0076] 图6是示出根据另一实施例的与本文所描述的技术一起使用的可编程设备600的框图。图6的某些方面已经从图6中省略以便避免使图6的其它方面不清楚。
[0077] 图6示出了处理元件670、680可以分别包括集成存储器和/或I/O控制逻辑(“CL”)672和682。在一些实施例中,672、682可以包括存储器控制逻辑(MC),例如,上面结合图6所描述的。另外,CL 672、682还可以包括I/O控制逻辑。图6示出了不仅存储器632、634可以耦合到CL 672、682,而且I/O设备644也可以耦合到控制逻辑672、682。传统式I/O设备615可以通过接口696耦合到I/O子系统690。每个处理元件670、680可以包括多个处理器核心,在图6中示出为处理器核心674A、674B、684A以及684B。如图6所示,I/O子系统690包括将处理元件
670、680的P-P互连676和686与链路652和654连接的点对点(P-P)互连694和698。处理元件
670和680还可以分别通过链路650以及互连678和688互连。存储器632、634可以包括表示一个或多个自立逻辑/模块101的软件指令,其包括可由处理元件670和680中的每个访问和/或执行的分布式分类账103。上面至少结合图1、图2、图3或图4描述了逻辑/模块101和分布式分类账103中的每个。
[0078] 图5和图6中描绘的可编程设备是可以用于实现本文论述的各种实施例的可编程设备的实施例的示意性说明。图5和图6中描绘的可编程设备的各种组件可以在片上系统(SoC)架构中组合。
[0079] 程序指令可以用于使得编程有指令的通用或专用处理系统执行本文所描述的操作。可替代地,操作可以由包含用于执行操作的硬连线逻辑的特定硬件组件执行,或者由已编程的计算机组件和定制硬件组件的任何组合执行。本文所描述的方法可以作为计算机程序产品提供,计算机程序产品可以包括其上存储有可以用于将处理系统或其它设备编程为执行方法的指令的机器可读介质。本文所使用的术语“机器可读介质”应包括能够存储或编码指令的序列以用于由机器执行并且使得机器执行本文所描述的方法中的任一方法的任何介质。术语“机器可读介质”因此应包括但不限于有形的非暂时性存储器,例如,固态存储器、光盘以及磁盘。此外,将一种形式或另一形式的软件(例如,程序、过程、进程、应用、模块、逻辑等)表述为采取动作或导致结果在本领域是常见的。这样的表达仅仅是陈述由处理系统执行软件使得处理器执行动作或产生结果的简写方式。
[0080] 公开了至少一个实施例,并且本领域普通技术人员做出的对(多个)实施例和/或(多个)实施例的特征的变化、组合、和/或修改在本公开的范围内。由组合、集成、和/或省略(多个)实施例的特征产生的替代实施例也在公开的范围内。在明确陈述了数值范围或限制的情况下,这样的表达范围或限制可以理解为包括落入明确陈述的范围或限制内的相同量级的迭代范围或限制(例如,从大约1到大约10包括2、3、4等;大于0.10包括0.11、0.12、0.13等)。除非另外陈述,否则术语“大约”的使用意味着后续数字的±10%。
[0081] 关于权利要求的任何元素使用术语“可选地”意味着,该元素是被要求的,或者替代地该元素不被要求,两个替代方案都在权利要求的范围内。诸如包含、包括以及具有的更宽泛术语的使用,可以被理解为提供了对诸如由…构成、基本上由…构成以及大体上由…组成的较窄术语的支持。因此,保护范围不受上面阐述的说明书的限制,而是由所附权利要求限定,该范围包括权利要求的主题的所有等同内容。每项且每一项权利要求作为另外的公开内容并入说明书中并且权利要求是本公开的(多个)实施例。
[0082] 以下示例涉及另外的实施例。
[0083] 示例1包括一种存储有用于对安装在客户端设备上的程序进行恢复的指令的机器可读介质,包括当被执行时使得看门狗设备进行以下操作的指令:向客户端设备发送针对安装在客户端设备上的程序的预期操作的指示的请求;响应于在预先确定的时间段内接收到来自客户端设备的对请求的响应,向多个互连的设备上的分布式分类账提交第一记录,客户端设备和看门狗设备是在多个互连的设备之中的;响应于在预先确定的时间段内没有接收到对请求的响应,向分布式分类账提交第二记录;以及响应于提交第二记录,启动针对客户端设备的软件恢复服务。
[0084] 在示例2中,示例1的主题可以可选地包括,指令还包括当被执行时使得看门狗设备向分布式分类账提交请求的指令。
[0085] 在示例3中,权利要求1或2的主题可以可选地包括,针对客户端设备的软件恢复服务包括以下中的一个或多个:第一软件恢复服务,其包括利用存储在映像中的程序的已知配置来替换程序;第二软件恢复服务,其包括将由客户端设备执行的一个或多个操作转移到第二客户端设备,第二客户端设备是多个互连的设备中的一个;第三软件恢复服务,其包括将客户端设备停用;以及第四软件恢复服务,其包括分派用于替换客户端设备的替换设备或用于修复客户端设备的维修实体。
[0086] 在示例4中,权利要求1、2或3的主题可以可选地包括,分布式分类账在区块链的单独的区块中存储成功响应的记录以及未能进行响应的指示。
[0087] 在示例5中,权利要求1、2、3或4的主题可以可选地包括,每个已发送的响应是根据预先确定的时间表生成的。
[0088] 在示例6中,权利要求1、2、3、4或5的主题可以可选地包括,看门狗设备包括至少一个防篡改处理器,其用于在安全环境中执行指令中的至少一些以便最小化或防止安全漏洞。
[0089] 在示例7中,权利要求1、2、3、4、5或6的主题可以可选地包括,指令还包括当被执行时使得看门狗设备进行以下操作的指令:基于分布式分类账来确定程序是有错误的。
[0090] 示例8包括一种用于对安装在客户端设备上的程序进行恢复的方法,该方法包括:向客户端设备并且由看门狗设备发送针对安装在客户端设备上的程序的预期操作的指示的请求;响应于在预先确定的时间段内接收到来自客户端设备的对请求的响应,向多个互连的设备上的分布式分类账提交第一记录,客户端设备和看门狗设备是在多个互连的设备之中的;响应于在预先确定的时间段内没有接收到对请求的响应,向分布式分类账提交第二记录;以及响应于提交第二记录,启动针对客户端设备的软件恢复服务。
[0091] 在示例9中,权利要求8的主题可以可选地包括,该方法还包括向分布式分类账提交请求。
[0092] 在示例10中,权利要求8或9的主题可以可选地包括,针对客户端设备的软件恢复服务包括以下中的一个或多个:第一软件恢复服务,其包括利用存储在映像中的程序的已知配置来替换程序;第二软件恢复服务,其包括将由客户端设备执行的一个或多个操作转移到第二客户端设备,第二客户端设备是多个互连的设备中的一个;第三软件恢复服务,其包括将客户端设备停用;以及第四软件恢复服务,其包括分派用于替换客户端设备的替换设备或用于修复客户端设备的维修实体。
[0093] 在示例11中,权利要求8、9或10的主题可以可选地包括,分布式分类账在区块链的单独的区块中存储成功响应的记录以及未能进行响应的指示。
[0094] 在示例12中,权利要求8、9、10或11的主题可以可选地包括,每个已发送的响应是根据预先确定的时间表生成的。
[0095] 在示例13中,权利要求8、9、10、11或12的主题可以可选地包括,该方法还包括基于分布式分类账来确定程序是有错误的。
[0096] 示例14包括一种用于对安装在客户端设备上的程序进行恢复的看门狗设备,该看门狗设备包括:一个或多个处理器;以及存储器,其耦合到一个或多个处理器并且存储有指令,包括当被执行时使得一个或多个处理器进行以下操作的指令:向客户端设备发送针对安装在客户端设备上的程序的预期操作的指示的请求;响应于在预先确定的时间段内接收到来自客户端设备的对请求的响应,向多个互连的设备上的分布式分类账提交第一记录,客户端设备和看门狗设备是在多个互连的设备之中的;响应于在预先确定的时间段内没有接收到对请求的响应,向分布式分类账提交第二记录;以及响应于提交第二记录,启动针对客户端设备的软件恢复服务。
[0097] 在示例15中,权利要求14的主题可以可选地包括,指令还包括当被执行时使得一个或多个处理器向分布式分类账提交请求的指令。
[0098] 在示例16中,权利要求14或15的主题可以可选地包括,针对客户端设备的软件恢复服务包括以下中的一个或多个:第一软件恢复服务,其包括利用存储在映像中的程序的已知配置来替换程序;第二软件恢复服务,其包括将由客户端设备执行的一个或多个操作转移到第二客户端设备,第二客户端设备是多个互连的设备中的一个;第三软件恢复服务,其包括将客户端设备停用;以及第四软件恢复服务,其包括分派用于替换客户端设备的替换设备或用于修复客户端设备的维修实体。
[0099] 在示例17中,权利要求14、15或16的主题可以可选地包括,分布式分类账在区块链的单独的区块中存储成功响应的记录以及未能进行响应的指示。
[0100] 在示例18中,权利要求14、15、16或17的主题可以可选地包括,每个已发送的响应是根据预先确定的时间表生成的。
[0101] 在示例19中,权利要求14、15、16、17或18的主题可以可选地包括,一个或多个处理器包括至少一个防篡改处理器,其用于在安全环境中执行指令中的至少一些以便最小化或防止安全漏洞。
[0102] 在示例20中,权利要求14、15、16、17、18或19的主题可以可选地包括,指令还包括当被执行时使得一个或多个处理器基于分布式分类账来确定程序有错误的指令。
[0103] 示例21包括一种存储有用于对安装在客户端设备上的程序进行恢复的指令的机器可读介质,包括当被执行时使得客户端设备进行以下操作的指令:向看门狗设备发送指示安装在客户端设备上的程序的预期操作的消息;响应于在预先确定的时间段内将消息发送到看门狗设备,向多个互连的设备上的分布式分类账提交第一记录,客户端设备和看门狗设备是在多个互连的设备之中的;响应于在预先确定的时间段内没有将消息发送到看门狗设备,向分布式分类账提交第二记录;以及响应于提交第二记录,启动针对客户端设备的软件恢复服务。
[0104] 示例22包括一种用于对安装在客户端设备上的程序进行恢复的方法,该方法包括:由客户端设备并且向看门狗设备发送指示安装在客户端设备上的程序的预期操作的消息;响应于在预先确定的时间段内将消息发送到看门狗设备,向多个互连的设备上的分布式分类账提交第一记录,客户端设备和看门狗设备是在多个互连的设备之中的;响应于在预先确定的时间段内没有将消息发送到看门狗设备,向分布式分类账提交第二记录;以及响应于提交第二记录,启动针对客户端设备的软件恢复服务。
[0105] 示例23包括一种用于对已安装的程序进行恢复的客户端设备,包括:一个或多个处理器;以及存储器,其耦合到一个或多个处理器并且存储有指令,其中,指令包括当被执行时使得一个或多个处理器中的至少一些进行以下操作的指令:向看门狗设备发送指示安装在客户端设备上的程序的预期操作的消息;响应于在预先确定的时间段内将消息发送到看门狗设备,向多个互连的设备上的分布式分类账提交第一记录,客户端设备和看门狗设备是在多个互连的设备之中的;响应于在预先确定的时间段内没有将消息发送到看门狗设备,向分布式分类账提交第二记录;以及响应于提交第二记录,启动针对客户端设备的软件恢复服务。
[0106] 在示例24中,权利要求23的主题可以可选地包括,一个或多个处理器包括至少一个防篡改处理器,其用于在安全环境中执行指令中的至少一些以便最小化或防止安全漏洞。
[0107] 在示例25中,权利要求23或24的主题可以可选地包括,客户端设备还包括:辅助电源,其被配置为独立于客户端设备的其它组件而对防篡改处理器供电。
[0108] 应理解,上面的说明书旨在是说明性的而非限制性的。例如,上述实施例可以彼此结合地使用。在审阅上面的说明书后,许多其它实施例对于本领域技术人员而言将是显而易见的。因此,本发明的范围应当参考所附权利要求以及这些权利要求被给予权利的等同内容的完整范围来确定。
[0109] 在该文档中提到了区块链技术,例如,以太坊和比特币。ETHEREUM可以是以太坊基金会(Stiftung Ethereum)的商标。BITCOIN可以是比特币基金会的商标。本文提到的这些标记和任何其它标记可以是与申请人或受让人有关联或无关联的第三方的习惯法或注册商标。这些标记的使用仅以示例的方式,而不应被解释为描述性的或将本文所描述的实施例的范围限制到仅与这些标记相关联的材料。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈