CN105009131B - 促进智能家庭设备与基于云的服务器间通信的多层认证方法 - Google Patents

促进智能家庭设备与基于云的服务器间通信的多层认证方法 Download PDF

Info

Publication number
CN105009131B
CN105009131B CN201380061084.3A CN201380061084A CN105009131B CN 105009131 B CN105009131 B CN 105009131B CN 201380061084 A CN201380061084 A CN 201380061084A CN 105009131 B CN105009131 B CN 105009131B
Authority
CN
China
Prior art keywords
client device
bucket
remote server
credential
client
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201380061084.3A
Other languages
English (en)
Other versions
CN105009131A (zh
Inventor
杰伊·D·罗格
森希尔瓦莎·苏普拉玛尼安
奥斯本·B.·哈迪森
杰瑞德·A·卢森堡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Priority to CN201810946575.0A priority Critical patent/CN109005185B/zh
Publication of CN105009131A publication Critical patent/CN105009131A/zh
Application granted granted Critical
Publication of CN105009131B publication Critical patent/CN105009131B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0815Network architectures or network communication protocols for network security for authentication of entities providing single-sign-on or federations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0884Network architectures or network communication protocols for network security for authentication of entities by delegation of authentication, e.g. a proxy authenticates an entity to be authenticated on behalf of this entity vis-à-vis an authentication entity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • H04L63/0846Network architectures or network communication protocols for network security for authentication of entities using passwords using time-dependent-passwords, e.g. periodically changing passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0853Network architectures or network communication protocols for network security for authentication of entities using an additional device, e.g. smartcard, SIM or a different communication terminal

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Telephonic Communication Services (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本发明提供了用于使在多个实体之间的分布状态同步以及认证设备以访问远程服务器所提供的信息和/或服务的设备、系统、方法和有关的计算机程序产品。同步技术包括存储信息桶的客户端设备和存储信息桶的远程服务器。客户端设备将识别信息桶的订阅请求发送给远程服务器,并且,当该桶变化时,远程服务器将该变化发送给客户端设备。认证技术包括唯一的默认凭证的客户端设备,当该唯一的默认凭证出示给远程服务器时,提供对服务器的限制的访问。客户端设备可获得分配的凭证,当该分配的凭证出示给远程服务器时,提供对服务器的较少限制的访问。

Description

促进智能家庭设备与基于云的服务器间通信的多层认证方法
技术领域
本专利说明书涉及用于使在多个实体当中的分布状态同步且用于认证彼此 通信和/或基于云的服务器的设备的设备、系统、方法以及相关的计算机程序产 品。更具体地,该专利说明书涉及通过远程服务器使在一个或多个客户端设备 当中的信息桶(bucketsof information)及其变化同步,使得在全部设备和远程 服务器上共享的信息桶的内容是相同的,以及涉及促进智能家庭设备和基于云 的服务器之间的通信的多层认证方法。
背景技术
随着日益增加的移动设备和基于云的计算的使用,以及日益增加的对于在 这种环境下提供远程访问和控制能力的期望,用于使多个设备之间的数据同步 的技术正变得日益重要。已知多种用于使数据同步的技术。例如,在双向文件 同步中,在一对位置之间,例如移动电话和家用个人计算机之间对更新文件进 行复制,目的在于使在该两个位置处的选定文件与所有位置上保持相同。这种 同步技术可使用各种用于处理文件的变更、包括版本控制、镜像等的工具。
目前可获得大量的执行数据同步的产品。例如,加州(CA)的Cupertino 公司的Apple的iCloudTM,允许诸如图片和视频的数据在诸如移动电话、平板电 脑等的设备之间共享。加州(CA)圣马特奥市的SugarSync公司提供能够被安 装在移动设备、工人电脑等上的软件应用程序,其允许文件和文件夹在多个计 算机和设备之间同步。
尽管用于使数据同步的现代技术具有在多个设备上文件共享的有利的显著 进展,但是在许多情况下这些技术在结构上被设计成通过永久的(AC-电源)或 者相对长期的(移动设备电池)供电在设备上实施,和/或仅仅在具体预定的情 形下需要及时同步的情况下(例如,当用户拍照以在多个设备上共享)。这种场 景可与基本上更有挑战性的场景相比较,其中,在多个设备之间的数据同步被 期望用于促进实时的设备对设备的控制或监控,但是其中,功率限制造成需要 使一个或多个设备在关闭状态或者极其低功率状态下维持延长的时间段。
随着日益增加的基于云的计算(其中计算系统的元件彼此远程分散)的使 用,对于确保安全的操作环境认证这些元件的身份也变得日益重要。许多设备 认证技术,例如使用预共享的对称/非对称密钥和/或使用数字签名,在客户端设 备实际上是需要向服务器认证其身份(和/或用户的身份)的单机设备的客户- 服务器模型中运行良好。然而,这类场景,可与基本上更有挑战性的场景(其 中客户端设备及其与服务器的关系是动态的)形成对比,例如在客户端设备可 与用户账户配对以获得权利访问受保护的资源,否则该受保护的资源不能够获 得的情形。
发明内容
在此公开了用于同步数据的各种技术。尽管此类技术可在各种各样的合适 网络中的各种电子设备中实施,一些技术可特别适合于一个或多个电子设备具 有相对较低的功率容量的环境。类似地,此类技术可类似地非常适于期望最小 化用于执行数据同步所需的功率消耗的环境。
所公开的技术包括使数据在客户端设备和远程服务器之间同步的各种方 法。一些方法针对客户端设备。例如,客户端设备可存储多个信息桶,每个桶 包括多个字段-值对,且远程服务器可存储多个信息桶,每个桶包括多个字段- 值对。因此,一种方法可包括各种操作。例如,该方法可包括在客户端设备处 将订阅请求发送给远程服务器。该订阅请求使客户端设备订阅在远程服务器处 的多个桶的子集,在远程服务器处的多个桶的子集分别对应于在客户端设备处 的多个桶的子集,对于该在远程服务器处的多个桶的子集,将建立和/或维持同 步。当客户端设备生成对于在客户端设备处的所述桶中的一个桶(其对应于在 远程服务器处的订阅的桶中的一个订阅的桶)的至少一个字段-值对的更新时, 该方法包括附加的步骤:将所述更新传送给远程服务器;接收来自远程服务器 的响应;和基于所接收的响应,使在客户端设备处的更新的信息桶与在远程服 务器处的对应的订阅的桶协调一致。协调可包括各种操作,例如如果来自远程 服务器的响应包括新的时间戳和/或版本标识符,则采用所述新的时间戳和/或版 本标识符重写更新的桶的已有的时间戳和/或版本标识符。协调还可包括:如果 来自远程服务器的响应包括至少一个替换字段-值对,则采用所述至少一个替换 字段-值对重写所更新的至少一个字段-值对的内容。另外,当所述客户端设备接 收来自所述远程服务器的通知通信时,其中,所述通知通信通知所述客户端设 备关于通过所述远程服务器对所述远程服务器处的所述订阅的桶中的一个桶的更新且提供与所述订阅的桶中的一个桶相关的更新的桶信息,所述方法包括采 用所接收的相关的更新的桶信息至少部分地重写在所述客户端设备处的对应桶 的内容。
一些方法针对远程服务器。例如,客户端设备可存储多个信息桶,每个信 息桶包括多个字段-值对,以及远程服务器可存储多个信息桶,每个信息桶包括 多个字段-值对。因此,方法可包括各种操作。例如,所述方法可包括在远程服 务器处接收来自客户端设备的订阅请求,该订阅请求识别在远程服务器上存储 的信息桶。所识别的信息桶对应于在客户端设备处存储的多个信息桶中的一个 信息桶。所述方法还可包括:通过所述远程服务器确定在所述远程服务器处存 储的所识别的信息桶和在所述客户端设备处存储的对应的信息桶之间是否存在 状态差异。所述方法还可包括:如果确定在所述远程服务器处存储的所识别的 信息桶和在所述客户端设备处存储的对应的信息桶之间存在状态差异,则用代 表在所述远程服务器处存储的所识别的信息桶和在所述客户端设备处存储的对 应的信息桶之间的至少一个差异的信息通知所述客户端设备。
除了公开各种方法和过程之外,所公开的技术包括用于同步数据的各种设 备和系统。在一个实施方式中,公开了客户端设备。客户端设备包括用于存储 多个信息桶的存储元件,每个信息桶包括多个字段-值对。客户端设备还包括与 该存储元件联接的协调模块。该协调模块可操作以执行各种功能。例如,协调 可生成对于在客户端设备处的一个信息桶的所期望的更新,将该所期望的更新 传送给存储多个信息桶的远程服务器(每个信息桶包括多个字段-值对),接收来 自远程服务器的响应,以及基于所述接收的响应,使在所述客户端设备处的将 更新传送给所述远程服务器所针对的所述信息桶与在所述远程服务器处的所述 多个信息桶中的对应的信息桶协调一致。
在另一实施方式中,公开了计算机系统。所述计算机系统包括用于存储多 个信息桶的存储元件,每个信息桶包括多个字段-值对。所述计算机系统还包括 与所述存储元件联接的同步服务器。所述同步服务器可操作以执行各种功能。 例如,所述同步服务器可接收来自存储多个信息桶(每个信息桶包括多个字段- 值对)的客户端设备的识别在存储元件上存储的信息桶的订阅请求,所识别的 信息桶对应于在所述客户端设备处存储的多个信息桶中的一个信息桶。所述同 步服务器还可确定在所述存储元件处存储的所识别的信息桶和在所述客户端设 备处存储的对应的信息桶之间是否存在状态差异。如果确定在所述存储元件处 存储的所识别的信息桶和在所述客户端设备处存储的对应的信息桶之间存在状 态差异,则所述同步服务器还可用代表在所述存储元件处存储的所识别的信息 桶和在所述客户端设备处存储的对应的信息桶之间的至少一个差异的信息通知 客户端设备。
还公开了各种用于执行多层设备认证的各种技术。尽管此类技术可在各种 各样的合适网络的各种电子设备中实施,一些技术可特别适合于一个或多个电 子设备具有相对较低的功率容量的环境。类似地,此类技术可类似地非常适于 期望最小化用于执行数据同步所需的功率消耗的环境。
所公开的技术包括用于认证客户端设备以与远程服务器通信的各种方法。 一些方法针对客户端设备。例如,一种方法可包括:通过客户端设备使用第一 设备凭证与第一远程服务器建立连接,该第一设备凭证对于客户端设备是唯一 的且存储在客户端设备处;以及认证所述客户端设备以与所述第一远程服务器 通信。所述方法还可包括在客户端设备处获取来自第一远程服务器的第二设备 凭证,该第二设备凭证认证该客户端设备以与第二远程服务器通信。所述方法 还可包括通过客户端设备使用第二设备凭证与第二远程服务器建立连接。
一些方法针对远程服务器。例如,一种方法可包括在远程服务器处接收来 自客户端设备的第一设备凭证,第一设备凭证包括由第三方生成的对于客户端 设备唯一的秘密。所述方法还可包括确定第一设备凭证是否有效。当确定第一 设备凭证有效时,第二设备凭证可在远程服务器处生成,该第二设备凭证可操 作以认证客户端设备以与所述远程服务器的一个或多个部件通信。另外,当确 定第一设备凭证有效时,远程服务器可将第二设备凭证传送至客户端设备。
除了公开各种方法和过程外,所公开的技术包括用于同步数据的各种设备 和系统。在一个实施方式中,公开了客户端设备。客户端设备包括用于存储第 一设备凭证的存储元件,该第一设备凭证对于客户端设备唯一且可操作以认证 客户端设备以与第一远程服务器通信。客户端设备还可包括与该存储元件联接 的认证模块。所述认证模块可操作以执行各种功能。例如,认证模块可使用第 一设备凭证与第一远程服务器建立连接、从第一远程服务器获取第二设备凭证, 第二设备凭证认证客户端设备以与第二远程服务器通信、以及使用第二设备凭 证与第二远程服务器建立连接。
在另一实施方式中,公开了计算机系统。计算机系统包括存储用于客户端 设备的设备凭证的存储元件。计算机系统还包括与存储元件联接的注册服务器。 所述注册服务器可操作以执行各种功能。例如,所述注册服务器可接收来自客 户端设备的第一设备凭证,该第一设备凭证包括由第三方生成的对于客户端设 备唯一的秘密。注册服务器还可确定第一设备凭证是否有效。当确定第一设备 凭证有效时,注册服务器可生成第二设备凭证,该第二设备凭证可操作以认证 客户端设备以与远程服务器的一个或多个部件通信、以及将第二设备凭证传送 至客户端设备。
为了更完整地理解本发明的实施方式的本质和优势,应参考随后的详细描 述和附图。从下面的附图和详细描述中将明显地看出本发明的其他方面、目的 和优势。然而,从权利要求的陈述中充分显现出本发明的范围。
附图说明
图1示出根据一实施方式的实现用于使分布在系统中的设备的状态同步的 订阅-通知机制的系统。
图2示出根据一实施方式的图1的系统以及在该系统的各个实体上设置的 信息桶。
图3示出根据一实施方式的包括远程服务器的一些简化部件的图1的系统。
图4为示出根据一实施方式的客户端设备的部件的简化框图。
图5为示出根据一实施方式的注册服务器的部件的简化框图。
图6为示出根据一实施方式的同步服务器的部件的简化框图。
图7为示出根据一实施方式的日志服务器的部件的简化框图。
图8示出根据一实施方式的与远程服务器相关联的存储元件的内容。
图9示出根据一实施方式的包含本文描述的同步机制的协议栈。
图10示出根据一实施方式的用于将监控设备连接到远程服务器的过程的 通信序列。
图11示出根据一实施方式的用于将接入设备连接到远程服务器的过程的通 信序列。
图12示出根据一实施方式的当在系统的监控设备处发起状态变化时,用于 使系统的实体之间的状态同步的过程的通信序列。
图13示出根据一实施方式的当在系统的接入设备处发起状态变化时,用于 使系统的实体之间的状态同步的过程的通信序列。
图14示出根据一实施方式的当在系统的同步服务器处发起状态变化时,用 于使系统的实体之间的状态同步的过程的通信序列。
图15A示出根据一实施方式的用于执行层重定向的过程的通信序列。
图15B为根据一实施方式的用于客户端设备执行层重定向的过程的流程 图。
图15C为根据一实施方式的用于注册服务器执行层重定向的过程的流程图。
图16A示出根据一实施方式的用于执行软件更新的过程的通信序列。
图16B为根据一实施方式的用于客户端设备执行软件更新的过程的流程图。
图16C为根据一实施方式的用于注册服务器执行软件更新的过程的流程 图。
图17A示出根据一实施方式的用于识别分配的同步服务器的过程的通信序 列。
图17B为根据一实施方式的用于注册服务器识别分配的同步服务器的过程 的流程图。
图17C为根据一实施方式的用于同步服务器识别分配的同步服务器的过程 的流程图。
图18A示出根据一实施方式的用于创建桶的过程的通信序列。
图18B为根据一实施方式的用于注册服务器创建信息桶的过程的流程图。
图18C为根据一实施方式的用于同步服务器创建信息桶的过程的流程图。
图19A示出根据一实施方式的用于请求相关桶的过程的通信序列。
图19B为根据一实施方式的用于客户端设备请求与客户端设备相关的桶的 过程的流程图。
图19C为根据一实施方式的用于同步服务器响应于与客户端设备相关的桶 的请求的过程的流程图。
图20A示出根据一实施方式的用于发送桶内容的过程的通信序列。
图20B为根据一实施方式的用于监控设备在初始连接期间将相关桶的内容 发送至同步服务器的过程的流程图。
图20C为根据一实施方式的用于同步服务器在初始连接期间响应于接收桶 内容而将响应发送至监控设备的过程的流程图。
图20D为根据一实施方式的用于监控设备在后续连接期间将相关桶的内容 发送至同步服务器的过程的流程图。
图20E为根据一实施方式的用于同步服务器在后续连接期间响应于接收桶 内容而将响应发送至监控设备的过程的流程图。
图21A示出根据一实施方式的用于订阅相关桶的过程的通信序列。
图21B为根据一实施方式的用于客户端设备订阅相关桶的过程的流程图。
图21C为根据第一实施方式的用于同步服务器接收订阅请求的过程的流程 图。
图21D为根据第二实施方式的用于同步服务器接收订阅请求的过程的流程 图。
图22A为根据一实施方式的用于操作客户端设备以使在客户端设备处的桶 的变化与在同步服务器处的对应的桶同步的过程的流程图。
图22B为根据一实施方式的用于执行参照图22A所描述的操作1512的过程 的流程图。
图23A为根据一实施方式的用于操作同步服务器以使客户端设备所请求的 桶的变化与在该同步服务器处的对应的桶以及在其他客户端设备处的对应的桶 同步的过程的流程图。
图23B为根据一实施方式的用于执行参照图23A所描述的操作1604的过程 的流程图。
图23C为根据一实施方式的用于执行参照图23A所描述的操作1606的过程 的流程图。
图24A和图24B示出使在客户端设备处的对应的桶和在远程服务器处的对 应的桶的状态同步的示例,其中,客户端设备的桶比远程服务器处的桶旧,客 户端设备企图改变其桶,但是由于该客户端设备未意识到在远程服务器处的较 新的桶,故该改变被远程服务器拒绝。
图25A至图25D示出使在客户端设备处的对应的桶和在远程服务器处的对 应的桶的状态同步的示例,其中,客户端设备发送比在远程服务器处存储的桶 新的桶,且在该远程服务器处存储的桶可以是客户端设备所期望的桶或者与客 户端设备所期望的桶不同的桶。
图26A至图26C示出使在客户端设备处的对应的桶和在远程服务器处的对 应的桶的状态同步的示例,其中,客户端设备在与远程服务器已经生成或接收 (来自另一设备)对桶的改变的时间完全相同的时间发送相同的桶。
图27A为示出默认凭证传送到客户端设备的框图。
图27B为示出分配的凭证传送到客户端设备的框图。
图28A示出根据一实施方式的用于认证客户端设备以与其分配的同步服务 器通信的过程的通信序列。
图28B为根据一实施方式的用于客户端设备与其分配的同步服务器通信的 过程的流程图。
图28C为根据一实施方式的用于注册服务器生成客户端设备的分配的凭证 的过程的流程图。
图28D为根据一实施方式的用于同步服务器与分配的客户端设备通信的过 程的流程图。
图28E为根据第一实施方式的用于判断分配的凭证是否有效的过程的流程 图。
图28F为根据第二实施方式的用于判断分配的凭证是否有效的过程的流程 图。
图28G为根据第三实施方式的用于判断分配的凭证是否有效的过程的流程 图。
图29A示出根据一实施方式的用于轮换分配的凭证的过程的通信序列。
图29B为根据一实施方式的用于客户端设备轮换其分配的凭证的过程的流 程图。
图29C为根据一实施方式的用于远程服务器轮换客户端设备的分配的凭证 的过程的流程图。
图30A示出根据一实施方式的用于处理拒绝的分配的凭证的过程的通信序 列。
图30B为根据一实施方式的用于客户端设备处理拒绝的分配的凭证的过程 的流程图。
图31A示出根据一实施方式的用于传送信息至日志服务器的过程的通信序 列。
图31B为根据一实施方式的用于客户端设备传送日志信息至日志服务器的 过程的流程图。
图31C为根据一实施方式的用于日志服务器接收和归类从客户端设备传送 的信息的过程的流程图。
图32A示出根据一实施方式的用于客户端设备访问不同类型的信息的过程 的通信序列。
图32B为根据一实施方式的用于客户端设备访问不同类型的信息的过程的 流程图。
图32C为根据一实施方式的用于同步服务器向客户端设备提供对不同类型 的信息的访问的过程的流程图。
图33示出根据示例性实施方式的监控设备的部件。
图34示出智能家庭环境的示例,在该智能家庭环境内,文中描述的设备、 方法、系统、服务和/或计算机程序产品中的一个或多个是可适用的。
图35示出根据一实施方式的专用计算机系统。
图36示出可扩展设备和服务平台的网络级视图,其中,智能家庭环境可与 该可扩展设备和服务平台集成在一起。
图37示出图36的可扩展设备和服务平台的抽象的功能视图。
具体实施方式
本发明的实施方式总体涉及使系统中的多个实体间的分布状态同步。在智 能家庭环境内,所述系统中的实体通常包括与远程服务器通信的至少一个监控 设备,其中,在示例性实施方式中的该监控设备是智能的、多传感的、网络连 接设备,例如恒温器、危险检测单元、环境传感器、环境控制器、安全性有关 的传感器、安全性有关的控制器、照明传感器/控制器、智能家电、家电传感器/ 控制器、娱乐有关的设备、通信有关的设备、害虫检测器、入侵检测器、门和 窗破洞传感器等。应理解到,尽管出于描述简洁和清晰的目的,术语“监控设 备”可在一个或多个示例中作为与远程服务器通信的设备,但是此术语应被理 解成包括能够执行各种智能家庭有关的控制功能中任一控制功能的各种控制设 备中的任一控制设备,包括在瞬时规范中识别的那些控制设备,这是因为“控 制”功能将必须包括用于几乎全部的智能家庭设备的至少一个“监控”方面。 因此,文中所使用的术语“监控设备”应被理解成包含恒温器,例如,该恒温 器具有控制功能(控制HVAC系统的操作),对于该控制功能,监控功能是必要 的组成部分(感测环境温度、湿度和/或其他待被控制的环境条件)。远程服务器 远离该监控设备且保持与该监控设备的信息状态相同的信息状态。在许多实施 方式中,系统还包括至少一个与远程服务器通信的接入设备,其中,该接入设 备可为手提电脑、移动电话、平板电脑、智能电话或被用于观看、控制和/或其 他影响监控设备的操作状态的类似设备。
为了促进系统的实体之间的状态同步,可使用基于订阅的通知机制。在文 中所述的基于订阅的通知机制中,在实体之间同步的公共信息(文中被称作信 息“桶”)的例子被存储在各个实体处。远程服务器维持针对系统的全部用户而 连接的全部设备的桶,其中,该设备仅仅维持与它们和/或在公共结构内的其他 设备(例如,在单一智能家庭环境内的设备)或者受制于公共控制方案的其他 设备(例如,与相同消费者或消费者账户相关的设备)有关的桶。为了维持与 远程服务器处的桶的状态的同步,监控设备和/或接入设备(一般地说通常被称 作客户端设备)将订阅请求提交给远程服务器,其中,该订阅请求是用于远程 服务器将远程服务器处的桶的变化通知给客户端设备的请求。对于包括监控设 备且具有相关的接入设备的结构,例如可由接入设备引发变化,由此远程服务 器通过其待决的订阅请求而通知监控设备该变化。可替选地,例如可由监控设 备引发变化,由此远程服务器通过其待决的订阅而通知接入设备该变化。
本发明的实施方式还通常涉及用于促进设备和远程服务器之间的通信的多 层认证技术。实体通常包括与远程服务器通信的客户端设备(例如,监控设备、 接入设备等),其中,在示例性实施方式中的该客户端设备在智能家庭环境内是 智能的、多传感的、网络连接的设备,例如恒温器、危险检测单元、环境传感 器、环境控制器、安全性有关的传感器、安全性有关的控制器、照明传感器/控 制器、智能家电、家电传感器/控制器、娱乐有关的设备、通信有关的设备、害 虫检测器、入侵检测器、门和窗破洞传感器等。远程服务器远离客户端设备且 存储信息(例如,安全资源)和/或提供客户端设备可期望获取或交互的服务。基于客户端设备的认证级别,该远程服务器可提供或者拒绝对客户端设备的访 问。
当涉及认证级别时,客户端设备可使用不同的设备凭证或者其他特征/关系 来认证其身份。基于所给出的设备凭证和/或其他特征/关系,远程服务器可提供 访问客户端设备的增加的级别或者降低的级别。一些设备凭证(例如“默认凭 证”)可允许客户端设备访问来自远程服务器的受限制的数据集和/或功能。其他 设备凭证(例如,“分配的凭证”)可允许客户端设备访问来自远程服务器的更 大的数据集和/或功能。此外,如果满足一些关系(例如,客户端设备已经与特 定的用户账户配对),则分配的凭证的呈现可允许客户端设备访问来自远程服务 器的甚至更大的数据集和/或功能,其为对于用户账户唯一的信息(例如,敏感 用户信息)。
该专利说明书的主题涉及下面共同转让申请的主题,这些申请分别通过引 用方式并入文中:2011年10月17日递交的美国序列号No.13/275,307的申请; 2011年10月17日递交的美国序列号No.13/275,311的申请;2012年3月22日 递交的国际申请序列号No.PCT/US12/30084的申请;以及2012年5月8日递交 的美国序列号No.13/466,815的申请。上述提到的专利申请在此共同被称作“并 入的共同转让申请”。
用于实现通信协议的系统
本文公开了根据一个或多个实施方式的基于订阅的同步的各个方面和实 现。转向附图,图1示出了根据一实施方式的实现用于使分布于系统内的设备 的状态同步的订阅-通知机制的系统100。系统100包括远程服务器102,所述远 程服务器远离一个或多个客户端设备104且借助网络106与一个或多个客户端 设备104通信连接。客户端设备104可包括各种电子设备。在一个实施方式中, 客户端设备104可包括一个或多个监控设备108,然而,在其他实施方式中,客 户端设备108还可包括一个或多个接入设备110。
监控设备108为可操作以生成待在系统100内共享的基本数据的电子设备。 在一个实施方式中,监控设备108可通过监控它的环境的一个或多个方面且将 监控的数据作为基本数据而生成此类基本数据。例如,在监控设备108为智能 恒温器的情形下,监控设备可包括感测诸如温度、湿度、占用率等的环境特征 的传感器。此类数据可因此由监控设备108生成且被传送至远程服务器102。当 在监控设备108处存在变化时,例如当感测到环境变化时,那些变化可类似地 被传送给远程服务器102。
除了通过监控其环境的方面生成数据外,还可通过与监控设备108进行的 用户交互而生成数据。例如,在监控设备108为智能恒温器时,用户可通过监 控设备108而限定所期望的温度(即“设定点温度”或者更简单地“设定点”), 其中监控设备108可随后控制电子联接的HVAC系统以达到和/或维持所期望的 温度。或者,通过其中程序化的算法,监控设备108本身可生成设定点。不论 设定点如何生成或改变,设定点以及设定点的变化可类似被传送至远程服务器 102。
反过来,远程服务器102可改变与监控设备108相关联的数据的一个或多 个字段。例如,远程服务器102可想要改变在监控设备108处存储的设定点。 在这种情形下,远程服务器102可改变其自己的监控设备108的设定点的版本, 且将该变化传送至监控设备108。因此,除了在监控设备108处对数据的改变反 映在远程服务器102处外,在远程服务器102处对数据的改变也反映在监控设 备108处。
在一些实施方式中,也可提供接入设备110,其中,接入设备110可操作以 从监控设备108处访问数据并且改变在监控设备108处的数据。为了从监控设 备处108访问数据,接入设备110可从远程服务器102处获取此类数据的副本。 由于在监控设备108处的信息状态和在远程服务器102处的信息状态通常是相 同的,故通过从远程服务器102处获取数据,使得在接入设备110处的信息状 态通常与在监控设备108处的信息状态相同。此外,为了改变监控设备108的 数据(例如,设定点),用户可在接入设备110处引起该变化,在接入设备110 处,该变化借助远程服务器102被传播给监控设备108。
应意识到,远程服务器102操作以维持与在监控设备108处提供的信息状 态相同的信息状态,在一些情形下,远程服务器102可改变其关于监控设备108 的信息状态,且使此类变化被传播给监控设备108,使得远程服务器102的状态 和监控设备108的状态同步。在提供接入设备110的实施方式中,远程服务器 102类似地操作以维持监控设备108和接入设备110两者中相同的信息状态,使 得监控设备108的状态和接入设备110的状态同步。
在至少一个实施方式中,可提供多个监控设备108。在这种情形下,尽管各 个监控设备108可生成其本身的唯一基本信息,该基本信息与远程服务器102 和一个或多个接入设备110同步,各个监控设备108也可与选择的其他监控设 备108共享其信息的子集。例如,在监控设备108为智能恒温器的情况下,它 们可彼此共享占用数据而不共享温度数据。因此,在多个监控设备108处的信 息的子集的状态可彼此同步。
网络106是用于实现不同实体之间(例如客户端设备104和远程服务器102 之间)的通信的任何合适网络。此类网络可包括例如局域网、广域网、虚拟专 用网络、因特网、内联网、外联网、公用电话交换网、红外线网络、无线网络、 无线数据网络、蜂窝网络、或者任何其他这样的网络或者其组合。另外,该网 络可包含任何合适的网络拓扑结构。网络106可采用任何合适的协议,在网络 106上的通信可通过有线的或无线的连接及其组合而进行。
应意识到,在参照图1所描述的具体示例中,监控设备108和接入设备110 可与共同用户相关(例如,它们可分别与特定的用户账户“配对”,如在文中进 一步描述的)。作为配对(和随后描述的订阅过程)的结果,监控设备108的状 态和接入设备110的状态可被同步。即,与特定的用户账户进行配对的监控设 备108和接入设备110可订阅一个或多个信息桶,使得通过任一设备造成的那 些信息桶的变化被传播给另一设备。然而,应意识到,配对的设备(例如,监 控设备108和接入设备110)仅仅为可包含在系统100中的全部客户端设备的子 集。即,系统100可包括与不同的账户配对的多个监控设备108、以及与相同的 或不同的账户配对的多个接入设备110。因此,同步通常在彼此相关联(例如, 与共同用户账户“配对”)的客户端设备之间进行,而不在彼此不相关的客户端 设备之间进行。
在某些实施方式中的系统100为分布式计算环境,该分布式计算环境采用 使用一个或多个计算机网络或者直接连接而经由通信链路互连的多个计算机系 统和部件。然而,本领域技术人员将理解到,这种系统在具有比图1所示的部 件更少数目或更多数目的部件的系统中同样会良好操作。因此,图1的系统100 的描述应被看作本质上是示例性的,且不应看作是限制本发明的范围。
图2示出根据一实施方式的图1的系统以及在该系统的各个实体处提供的 信息桶。系统100的实体以“桶”的形式存储数据,其中,各个桶包括多个字 段-值对。字段可被限定用于监控设备108和/或其环境的多个属性。值与各个字 段相关。对于智能恒温器,示例性的字段-值对可为:
“hvac_加热器_状态”:0
字符串“hvac_加热器_状态”为涉及HVAC加热器的状态的字段,数“0” 为涉及HVAC加热器的状态(例如,关闭)的值。示例性的桶为:
桶名称:结构.<id>
{
"设备":[设备.<id>,设备<id>]
"名称":"我的起居室的恒温器",
"离开":错误,
"显示_位置":"加利福尼亚州帕洛阿尔托\n"
}
在该示例中的桶被称作“结构”且包括与监控设备108所在的结构(例如, 住宅)相关联的字段-值对。参照图2,“结构”桶可为桶“B1”108A,桶“B1” 包括在监控设备108处初始限定的值。各个桶可设置有版本标识符和/或时间戳。 版本标识符唯一地识别桶的版本,而时间戳识别服务器102接收或生成桶(或 者其中的值)的时间。因此,再次参照图2,桶“B1”可与从服务器102处接收 到的唯一版本“v1”和时间戳“t1”相关。
监控设备108可具有多个桶,“B1”108A至“BN”108N,其中,各个桶包 括其本身的一组字段-值对。远程服务器也会具有多个桶,“B1”102A至“BN” 102N,其分别对应于监控设备108的桶。当在稳定状态下时,远程服务器102 处的桶的内容和监控设备108处的对应的桶的内容将是相同的。在使用版本标 识符和/或时间戳的实施方式中,在远程服务器102处的桶和在监控设备108处 的对应的桶的版本标识符和/或时间戳将类似地是相同的。
如所述,在一些实施方式中,系统100包括一个或多个接入设备110。接入 设备110类似地包括桶“B1”110A至“BN”110N,桶“B1”110A至“BN” 110N分别对应于监控设备108的桶。当处于稳定状态时,在接入设备110处的 桶的内容和分别在远程服务器102和监控设备108处的对应的桶的内容将是相 同的。在使用版本标识符和/或时间戳的实施方式中,在接入设备110处的桶的 版本标识符和/或时间戳与在远程服务器102和监控设备108处的桶的版本标识 符和/或时间戳将类似地是相同的。
在至少一个实施方式中,可提供全部与同一结构或者用户账户相关联的多 个监控设备108。各个监控设备108包括其唯一的一组桶B1至BN(其中,对 于各个设备108,N可以是相同或不同的),这些桶与远程服务器102同步且在 一些情况下与接入设备110同步。另外,监控设备108中的一些或者全部可包 括共享桶“BS”108S。共享桶BS与其他桶类似,而且在与相同结构或者用户 账户相关联的多个监控设备108当中可被共享或者同步。为了促进这种共享, 远程服务器102也可包括针对各个监控设备108的共享桶“BS”102S。当一个 监控设备108对其共享桶“BS”做出变化时,远程服务器102可将那些变化传 播给其他的监控设备108。以这种方式,监控设备108可有效地彼此通信。
接入设备110也可包括共享桶“BS”110S。在至少一个实施方式中,接入 设备110包括全部监控设备108的共享桶“BS”。以这种方式,接入设备110可 操作以访问在多个监控设备108之间共享的信息桶。在2011年10月21日递交 的美国临时专利申请No.61/627,996中描述了共享桶的其他细节和示例。一个此 类示例包括所谓的离开状态(away-state)标志,每一个离开状态标志对应于家 中的不同的占用-感测设备,如果该占用-感测设备在预定的时间间隔中没有检测 到占用,则每一个离开状态标志被对应的设备设置为“离开就绪”状态,其中, 直到全部的标志被设定为“离开就绪”,一个设备才会进入实际的离开状态(低能量使用状态)。对于占用感测恒温器的示例性例子,这将确保直到全部设备已 经“看到”必要的非占用条件,恒温器才会进入不太舒适的低能量使用状态, 从而建立该家确实未被占用的高可能性。
图3示出根据一实施方式的包括远程服务器102的一些简化部件的图1的 系统。相同附图标记的实体与先前描述的那些实体相同,因此省略了进一步的 描述。远程服务器102包括注册服务器112、多个同步服务器114A至114M、 日志服务器116和存储元件118。注册服务器112、同步服务器114A至114M以 及日志服务器116通过网络106而可通信地连接至客户端设备104。同步服务器 114A至114M也可通信地连接至注册服务器112和存储元件118。
如在文中更为详细地进一步描述地,存储元件118可存储用于系统100的 所有用户的各种信息,例如桶102A至桶102N和桶102S。例如,参照图2,对 于系统100的各个用户,存储元件118可存储桶102A至桶102N和任何共享桶 102S中的全部。注册服务器112和同步服务器114A至114M可然后操作以确 保存储元件118内的桶的状态与相关联的客户端设备104内的桶的状态相同。 存储元件118还可或者可替选地存储与认证相关的信息。例如,存储元件118 可存储分配的凭证、默认凭证等。
在一些实施方式中以及如在文中进一步描述,注册服务器112充当用于客 户端设备104的第一联系点。例如,监控设备108可具有在其内硬编码的注册 服务器112的位置标识符(例如,URL),使得在初始化或者重新连接时,监控 设备108可始终联系注册服务器112。除了别的之外,注册服务器112可识别同 步服务器114A至114M中的负责使在客户端设备104处的桶与在存储元件118 处的桶同步的一个同步服务器,且将所选择的同步服务器的身份提供给客户端 设备104。客户端设备可随后连接至所选择的同步服务器,该所选择的同步服务 器随后将使客户端设备104的状态彼此同步(例如当客户端设备104彼此相关联,诸如与同一用户账户配对)且将客户端设备104的状态与存储元件118同 步。
在特定的实施方式中,系统100为分布式计算环境,分布式计算环境的远 程服务器102包括各种部件。然而,本领域技术人员将理解到,这种远程服务 器在具有与如图3所示部件相比更少数目或更多数目的部件时同样会良好运行。 因此,在图3中系统100的描述应被作为本质上是示例性的,且不应作为限制 本教导的范围。
图4为根据一实施方式示出客户端设备104的部件的简化框图。客户端设 备104包括许多不同的功能模块,包括安全模块120、认证模块122、协调 (reconciliation)模块124、会话识别生成器126和存储元件128。存储元件128 可包括各种信息,例如注册服务器位置128A、设备标识符128B、当前软件版本 128C、一个或多个信息桶128D、默认凭证128E、以及在某些时候包括分配的 凭证128F。
安全模块120可操作以在客户端设备和系统100的其他元件(例如注册服 务器112和/或同步服务器114)之间提供安全的(例如,密码加密的)通信。 为了促进这种安全通信,安全模块120可包括用于执行一个或多个安全有关的 功能的代码或者硬件功能性,例如对称加密、非对称加密、密钥协商和/或密钥 建立、散列、签名等。因此,安全模块120可操作以实现各种密码通信协议中 的一者或多者,例如传输层安全(TSL)、安全套接层(SSL)等。由于与远程 服务器102建立安全连接,可以向客户端设备104认证远程服务器102的身份 (例如,注册服务器112和/或同步服务器114的身份)。
与安全模块120的提供安全通信信道以及向客户端设备104认证远程服务 器102的身份的功能相反,认证模块122可操作以向远程服务器102认证客户 端设备104的身份。如同安全模块120一样,认证模块122可包括用于执行一 个或多个安全有关的功能的代码或者硬件功能性,例如对称加密、非对称加密、 密钥协商和/或密钥建立、散列、签名等。然而,在该情形下,认证模块120可 操作以实现各种认证协议中的一个或多个,例如可扩展认证协议(EAP)、挑战 握手认证协议(CHAP)、挑战应答认证机制(CRAM)等。可被使用的认证协议的各种示例在此随后进行描述。
协调模块124可操作以使客户端设备104的桶128D的状态与在同步服务器 114中提供的对应桶的状态协调一致。通过使桶128D的状态与在同步服务器114 中的对应桶的状态协调一致,在客户端设备104处的桶128D和同步服务器114 处的对应桶被确保以至少最终地具有相同的内容。另外,当系统100包括彼此 相关联的多个客户端设备104时,例如与相同用户账户配对的监控设备108和 接入设备110,通过使各个客户端设备104的桶128D的状态和同步服务器114 中提供的对应桶的状态协调一致,在全部客户端设备104处的桶128D类似地被 确保以至少最终具有相同的内容。在此进一步描述各种协调技术。
会话ID生成器模块126可操作以生成会话标识符,该会话标识符识别在客 户端设备104和远程服务器102之间建立的唯一通信会话。会话标识符可在各 种时间中的任一时间生成,且可持续各种时间段中的任一时间段。例如,唯一 会话标识符可在客户端设备104通电时而生成且可持续到客户端设备104断电。 又例如,会话标识符可在客户端设备104每次重新连接至注册服务器112以获 取新的分配的凭证时生成且持续到客户端设备104再次需要重新连接至注册服 务器112。再例如,会话标识符可周期性地生成。针对每一会话生成的会话标识 符为唯一地识别通信会话的标识符。例如,会话标识符可为随机地生成的字符串、时间排序的数值、或者其他信息序列。在此进一步描述会话标识符的使用。
如所提及的,存储元件128包括各种信息,例如注册服务器位置128A、设 备标识符128B、当前软件版本128C、一个或多个信息桶128D、默认凭证128E、 以及在某些时候包括分配的凭证128F。注册服务器位置128A表示注册服务器 112的目标位置从而促进客户端设备104和注册服务器112之间的通信。例如, 注册服务器位置128A可为识别注册服务器112的名称的统一资源标识符(URI)、 统一资源定位符(URL)等,以使客户端设备104能够通过网络106(例如因特 网)连接至注册服务器112。在一些实施方式中,注册服务器位置128A可被硬 编码到或者以其它方式存储到客户端设备104的非易失性存储器中。
设备标识符128B为唯一识别客户端设备104的数据字符串或者其它信息序 列。设备标识符128B可为静态的或者动态的。例如,静态设备标识符128B可 被硬编码到或以其它方式存储在客户端设备104的非易失性存储器中,且可为 例如序列号、媒体访问控制(MAC)地址、或者其他唯一标识符。动态设备标 识符128B可为动态生成的标识符,其也唯一地识别客户端设备104。动态设备 标识符128B可由客户端设备104生成,或者在一些实施方式中,由系统的其他 实体(例如注册服务器112)生成。在一个特定的实施方式中,客户端设备104 可包括多个设备标识符128B,例如静态标识符和动态标识符,其中,静态标识 符被硬编码到客户端设备104中,且动态标识符由注册服务器112生成且通过 注册服务器112提供给客户端设备104。在一个特定的实施方式中,设备标识符 128B可被设置在如在此进一步描述的默认凭证128E和分配的凭证128F的一个 或多个中。
当前软件版本128C为识别正在客户端设备104上执行的软件版本的数据字 符串或者其他信息序列。例如,在一些实施方式中,客户端设备104的一个或 多个模块、以及在许多情形下客户端设备的附加的操作功能,以存储在客户端 设备104上的软件代码实现。当前软件版本128C表示该软件代码的版本,这是 因为软件代码随着时间可被更新或者被不同版本替代。
桶128D为先前参照图2所描述的信息桶。因此,当客户端设备104为监控 设备108时,各个桶128D包括多个用于限定客户端设备104和/或其环境的属 性的字段-值对。在此,字段-值对经常被称作桶的“内容”,但桶的内容可包括 除了字段-值对以外的多种信息(例如,报头、格式化字符等)。各个桶128D具 有与其相关联的唯一识别桶的桶标识符或名称(例如,“桶A”),也可具有为其 分配的且与其相关联的如在先前描述的时间戳(“t”)和版本(“v”)。
默认凭证128E为对于客户端设备104和远程服务器102已知的诸如密码的 凭证,其在制造时给予该设备且在该设备的整个使用期内属于该设备。因此, 默认凭证可表示客户端设备被特定的实体制造。默认凭证可包括多种信息中的 一个或多个,例如识别凭证的类型(即,默认凭证)的方案、唯一识别设备的 标识符(例如,序列号、MAC地址等)、以及对于客户端设备104和远程服务 器102已知的秘密(例如,标识符的散列版本)。
分配的凭证128F为对于客户端设备104和远程服务器102已知的诸如密码 的凭证,其在交互过程期间由远程服务器102分配给客户端设备104,且在一些 实施方式中可周期性地过期。与默认凭证相比,该分配的凭证可操作以向客户 端设备提供对安全资源的增加的访问,并且在该设备与用户账户配对时,认证 客户端设备与该账户相关联。分配的凭证可包括多种信息中的一个或多个,例 如识别凭证的类型(即,分配的凭证)的方案、唯一识别设备的标识符(例如, 序列号、MAC地址等)、以及对于客户端设备104和远程服务器102已知的秘 密(例如,随机数)。
尽管描述为独立的模块,应意识到,关于客户端设备104描述的多个模块 和元件可组合成一个或多个模块或者进一步被分成一个或多个模块。该多个模 块可以以软件或硬件形式实现,且存储元件128可以以任何合适的方式实现, 例如在一个或多个磁盘驱动器、光存储设备、固态存储设备(例如随机存取存 储器(“RAM”)和/或只读存储器(“ROM”))等上的一个或多个数据库。
在此还描述了客户端设备104的元件的多个其他特征、操作和用途。另外, 应意识到,客户端设备104,尽管被描述为包括多个模块和部件,但其可包括用 于促进在此描述的电子设备的操作的其他元件。本领域技术人员还将意识到, 客户端设备在具有比图4所示的部件更少数目或者更多数目的部件时,可同样 运行良好。因此,在图4中的客户端设备104的描述应被看作在本质上是示例 性的,且不看作对本教导的范围的限制。
图5为示出根据一实施方式的注册服务器112的部件的简化框图。注册服 务器112包括多个不同的功能模块,包括安全模块140、认证模块142、层重定 向模块144、软件更新模块146、同步服务器识别模块148以及存储元件150。 存储元件150可包括多个信息,例如同步服务器标识符150A、软件版本/更新程序图150B、软件版本/层图150C、以及设备标识符/层图150D。
安全模块140,与关于客户端设备104描述的安全模块120一样,可操作以 提供系统100的注册服务器112和其他元件(例如客户端设备104)之间的安全 通信。因此,安全模块140可包括与安全模块120的代码或者硬件功能相似的 代码或者硬件功能,以与客户端设备104建立安全连接且通过与客户端设备104 的安全模块120的通信而向客户端设备104认证其身份。
认证模块142也与关于客户端设备104描述的认证模块122相似,且因此 可操作以与客户端设备104的认证模块122通信,进而认证客户端设备104的 身份。因此,认证模块122可包括与客户端设备104的代码或者硬件功能相似 的代码或者硬件功能,以通过与客户端设备104的认证模块122的通信而认证 客户端设备104的身份。
层重定向模块144可操作以基于特定层而将客户端设备104重新定向到远 程服务器102的不同实例,客户端设备104可为该特定层的一部分。即,可存 在远程服务器102的多个不同的实例(即,工作副本),包括注册服务器112和 同步服务器114A至114M。该不同的实例可提供与客户端设备104初始连接的 基本实例相同的功能,或者可提供附加的或可替选的功能。例如,远程服务器 102的不同实例可出于不同目的而产生,例如,用于生产目的、质量保证目的、 分段运输目的等。生产实例可为客户端设备104经由注册服务器位置128A初始 连接的基本实例,且可包括用于消费者使用的稳定的可操作性版本。相反,质 量保证实例可为测试实例,系统100的测试者操作的客户端设备104经由重定 向模块144重新定向至该测试实例,其中该测试实例可被用于测试系统100的 各个实体(例如客户端设备104、注册服务器112等)的新的或不同的操作性。
软件更新模块146可操作以识别软件版本信息和提供该软件版本信息给客 户端设备104。软件版本信息可指示客户端设备104应执行的最新的或者所需的 软件版本,和/或可指示客户端设备104可访问的软件更新目的地(例如,目标 URT)以获得软件更新。软件更新模块146特别适合于这样的实施:其中,客 户端设备104包括用于执行如文中所述的其一些或全部功能的计算机软件。
同步服务器识别模块148可操作以识别多个同步服务器114A至114M中的 一个同步服务器,该一个同步服务器被分配给客户端设备104且用于代表该客 户端设备104和其他有关的客户端设备104(例如当多个客户端设备104与同 一结构或用户账户相关联时)执行同步操作。如先前所述,在一些实施方式中, 远程服务器102包括多个同步服务器114A至114M。各个同步服务器可被分配 以代表全部可能的客户端设备104的子集(即,向注册服务器112注册的全部 客户端设备104的子集)执行同步操作。由于各个同步服务器仅仅被分配至全 部可能的客户端设备104的子集,故整个系统100的同步工作量在同步服务器 114A至114M中分布。用于将同步服务器114A至114M分配给客户端设备104 的多个技术在此进一步进行描述,尽管在图3中未被描述,也应意识到,在一 些实施方式中,系统100可只包括单个同步服务器而不是多个同步服务器。在 这样的情况下,单个同步服务器代表所有客户端设备104执行同步操作。应意 识到,同步服务器识别模块148尤其非常适合于包括多个同步服务器的实现。
如所述,存储元件150包括多种信息,例如同步服务器标识符150A、软件 版本/更新程序图150B、软件版本/层图150C、以及设备标识符/层图150D。同 步服务器标识符150A分别唯一地识别多个同步服务器114A至114M中的一个 同步服务器。例如,同步服务器标识符150A可包括URI、URL等,用于各个 同步服务器。因此,注册服务器112了解不同的同步服务器且能够将所选择的 同步服务器的目标位置传送给客户端设备104。
软件版本/更新程序图150B为使客户端设备(例如,设备标识符)与特定的 软件版本且在一些实施方式中与软件更新目的地关联、或者使客户端设备(例 如,设备标识符)映射到特定的软件版本且在一些实施方式中映射到软件更新 目的地的图。在至少一个实施方式中,不同客户端设备104可被控制以局部地 执行不同版本的计算机软件。例如,分配给用户的客户端设备104可被控制以 执行适合用户的软件版本,然而分配给系统100的测试者的客户端设备104可 被控制以适合执行测试者的软件版本。因此,软件版本/更新程序图150B包括 客户端设备104和这些设备应执行的软件版本之间的映射。由于设备标识符128B唯一地识别各个客户端设备104,故软件版本/更新程序图150B可包括设 备标识符和软件版本之间的映射以使注册服务器112能够基于客户端设备104 的设备标识符128B确定客户端设备104应执行的合适的软件版本。另外,在一 些实施方式中,可使用不同的软件更新实体或者目标位置,从而不同的软件更新 程序位置可与不同的软件版本相关联。在一些实施方式中,同一软件更新程序 位置可被用于全部软件更新,在其他实施方式中,同一软件版本可被全部客户 端设备104所使用。
软件版本/层图150C为使客户端设备104正执行的当前软件版本与客户端设 备104是其一部分的层相关联的图。通过识别客户端设备104是其一部分的层, 注册服务器112可将客户端设备104维持在远程服务器102的实例上,或者通 过层重定向模块144将客户端设备104转送到远程服务器102的不同实例上。 通过识别客户端设备的层,软件版本/层图150C可相应地识别注册服务器112 的不同实例的目标位置,使得例如在客户端设备104目前正在执行未授权的软 件版本的情况下,注册服务器112可将客户端设备104重新定向至注册服务器 112的不同实例(例如,测试实例)以及由此重新定向至远程服务器102的不同 实例。
设备标识符/层图150D为如同软件版本/层图150C的图,但是并不使客户端 设备104正执行的当前软件版本与层相关联,图150C使客户端设备104的设备 标识符与层相关联。以这样的方式,注册服务器能够将客户端设备104重新定 向至远程服务器102的不同实例,而与客户端设备104正在执行的软件版本无 关。
尽管被描述为独立的模块,但是应意识到,关于注册服务器112所描述的 多个模块和元件可被组合成一个或多个模块或者进一步被分成一个或多个模 块。可以以软件或硬件形式实施多个模块,且存储元件150可以以任何合适的 方式实施,例如在一个或多个磁盘驱动器、光存储设备、固态存储设备(例如 随机存取存储器(“RAM”)和/或只读存储器(“ROM”))等上的一个或多个数 据库。
在此进一步描述了注册服务器112的元件的多个其他特征、操作和用途。 另外,应意识到,尽管注册服务器112被描述为包括多个模块和部件,但其可 包括用于促进如文中所描述的电子设备的操作的其他元件。本领域技术人员还 应理解到,注册服务器112在具有比图5所示的部件更少数目或更多数目的部 件时,同样会运行良好。因此,图5中的注册服务器112的描述应被看作本质 上是示例性的,且不应看作是限制本教导的范围。
图6为示出根据一实施方式的同步服务器114的部件的简化框图。同步服 务器114包括多个不同的功能模块,包括安全模块160、认证模块162、客户端 分配器模块164、相关桶标识符166、桶生成器168、版本生成器170、时间戳 生成器172、协调模块174和存储元件178。存储元件178可包括多种信息,例 如同步服务器标识符178A、设备标识符178B、设备标识符/桶图178C和设备标 识符/用户账户图178D。
安全模块160,与关于客户端设备104描述的安全模块120一样,可操作以 提供系统100的同步服务器114和其他元件(例如客户端设备104)之间的安全 通信。因此,安全模块160可包括与安全模块120的代码或者硬件功能相似的 代码或者硬件功能,以与客户端设备104建立安全连接且通过与客户端设备104 的安全模块120的通信而向客户端设备104认证其身份。
认证模块162也与关于客户端设备104描述的认证模块122相似,且因此 可操作以与客户端设备104的认证模块122通信,进而认证客户端设备104的 身份。因此,认证模块162可包括与客户端设备104的代码或者硬件功能相似 的代码或者硬件功能,以通过与客户端设备104的认证模块122的通信而认证 客户端设备104的身份。
客户端分配器模块164可操作以将多个同步服务器114A至114M中的一个 同步服务器分配给特定的客户端设备104。如先前所述,单个同步服务器114可 代表客户端设备的子集执行同步操作。因此,客户端分配器模块164可包括用 于识别特定的同步服务器以分配给特定的客户端设备104的一个或多个算法。 在一个特定的实施方式中,客户端分配器模块164可实现一致性散列算法以进 行这样的分配。然而,实施方式不限于使用一致性散列算法,也可使用其他类 型的散列算法,例如简单散列函数、完美散列函数、最小完美散列函数、专用 散列函数、滚动散列函数、通用散列函数等。为了促进识别特定的同步服务器,各个同步服务器可熟知系统100内的全部同步服务器以及期望被分配同步服务 器的客户端设备104的设备标识符。系统100内的全部同步服务器的身份可被 存储在例如同步服务器标识符178A中,而所接收的设备标识符可被存储为设备 标识符178B。凭借该方案,当注册服务器112要将特定的客户端设备104定向 至同步服务器114中的指定的同步服务器114时,注册服务器112可首先询问同 步服务器114中的任一同步服务器114,它们中的哪一个同步服务器应当是用于 所讨论的特定的客户端设备104的指定的同步服务器。除了其他优势外,在多 个同步服务器114之间的均衡负荷可通过它们自身的自治式分配算法来实现,而无需注册服务器112或者任何其他的外部负荷均衡系统来管理该负荷均衡过 程。
相关桶标识符166可操作以识别与特定的客户端设备104有关的桶。由于 是相关的,故这些桶将在客户端设备和同步服务器之间同步。例如,简要地转 向图8,图8描述了根据一实施方式的存储元件118的一些内容。对于各个设备, 存储元件118包括多个桶。例如,对于客户端设备104“设备A”,存储元件116 包括桶190,桶190包括“桶A”、“桶B”、“桶C”、“桶Z”和“桶S”。设备A 与“用户A”的用户账户配对或者与“用户A”的用户账户相关联。尽管存储元件118针对设备A包括至少5个桶,但仅有这些桶的子集190A(包括桶A、 桶B、桶C和桶S)与在同步服务器114处的对应桶同步。至少一个桶190B, 即桶Z,与在同步服务器114处的对应桶不同步。因此,对于给定的客户端设备 104,相关桶标识符166可操作以识别桶A、桶B、桶C和桶S,这是因为它们 为(在该示例中)要在客户端设备104和远程服务器102之间同步的桶。
桶生成器168可操作以生成远程服务器102处的桶的实例。在一些实施方 式中,信息桶(例如,桶190)未预先存在于存储元件118(即,在远程服务器 102)中。相反,当初始连接至客户端设备或初始化客户端设备时,可创建桶。 例如,当最初将监控设备108连接至注册服务器112时,注册服务器112可使 与客户端设备104相关联的桶在存储元件118处创建。
版本生成器170可操作以生成针对各个桶的版本标识符。版本标识符可为 字符串或者其他数据序列,该字符串或者其他数据序列操作以唯一地识别在某 个特定时间的针对特定客户端的特定桶的版本。例如,参照图8,在给定的情形 下,桶190的桶A可具有与其相关的、在桶A使用的持续时期间对于桶A是唯 一的版本。在一些实施方式中,特定桶的版本相对于与相同用户或不同用户相 关联的其他桶,也是唯一的,然而在其他实施方式中,该特定桶的版本相对于 与相同用户或不同用户相关联的其他桶也可以不是唯一的。版本生成器170可 随机地、顺序地、或者以其他用于生成唯一标识符的合适方式生成版本标识符。
时间戳生成器172可操作以生成用于各个桶的时间戳。时间戳可为字符串 或者其他数据序列,该字符串或者其他数据序列操作以提供时间指示。例如, 时间戳生成器172可生成时间戳,该时间戳指示生成桶的时间。随后,当改变 桶时,时间戳生成器172可生成指示改变桶的时间的新的时间戳。在一些实施 方式中,时间戳可按时间顺序地生成,使得即使时间戳未指示绝对时间,时间 戳的序列也指示一个时间戳是在另一时间戳之前还是之后生成。
协调模块174与客户端设备104的协调模块124相类似,但在该情况下其 可操作以使在存储元件118处的桶的状态与在客户端设备104处的桶128D的状 态协调一致。在系统100包括多个与给定用户相关联的不同客户端设备104的 实施方式中,协调模块174可操作以使在存储元件118处的桶的状态与在全部 客户端设备处的桶的状态协调一致。
如所述,存储元件178可包括多种信息,例如同步服务器标识符178A、设 备标识符178B、设备标识符/桶图178C和设备标识符/用户账户图178D。该同 步服务器标识符178A与同步服务器标识符150A相似,且设备标识符178B与 设备标识符128B相似,因此省略了进一步描述。设备标识符/桶图178C为在设 备标识符和桶之间的映射或关联。即,设备标识符/桶图178C将客户端设备104 与在存储元件118处存储的与这些客户端设备104相关联的桶进行映射。例如, 参照图8,设备标识符/桶图178C可将用于设备A的设备标识符与在桶190中的 桶A、桶B、桶C、桶Z和桶S进行映射。设备标识符/用户账户图178是设备 标识符与由客户端设备104的用户利用远程服务器102建立的用户账户之间的 映射或关联。
一个或多个所描述的实施方式可享有一个或多个优势,考虑到通常可用于 企业的虚拟计算机和数据存储元件的本质该优势更加明显,该企业可渴望以一 种可靠的、经济的、且可升级的方式实施全部的或部分的远程服务器102,以服 务大量的客户端设备104(例如,范围在一些场景下从上百个这样的客户端设备 到在其他场景下成百上千个这样的客户端设备、以及在另外场景下数百万以上 千个这样的客户端设备),而不需要与建立定制专用硬件实施相关的费用或延 迟。在一个示例性场景下,远程服务器102可通过购买来自云服务提供商(例 如Amazon,Inc.of Seattle,华盛顿)的计算和数据存储能力来实施,其中,各 个注册服务器112可为具有一个或多个本地实例存储容量、安装的EBS(弹性 块存储)容量的EC2(弹性计算云)实例,且有权使用用作数据存储元件150 的至少一部分的唯一的Amazon RDS(关系数据库服务)实例;各个同步服务器 114可为具有一个或多个本地实例存储容量、安装的EBS(弹性块存储)容量的 EC2实例,且有权使用用作数据存储元件178的至少一部分的唯一的Amazon RDS(关系数据库服务)实例;各个日志服务器116可为有权使用用作数据存储 元件186的至少一部分的Amazon S3(简单存储服务)实例的EC2实例;以及, 存储元件118可为Amazon RDS(关系数据库服务)实例。一般而言,对于这种 实施,用于各个注册服务器112的数据存储元件150被专门用于特定的注册服 务器112且易于只被该特定的注册服务器112访问,并且用于各个同步服务器 114的数据存储元件178被专门用于特定的同步服务器114且易于仅被该特定 的同步服务器114访问。数据存储元件186可主要被日志服务器116访问,但 也可允许访问系统100的提供正确的认证凭证的其他元件。与用于注册服务器 112和同步服务器114的存储元件相反,全部的同步服务器114(如果需要,以及注册服务器112和日志服务器116)能够访问存储元件118,尽管,如本领域 已知的,数据写入和检索的速度通常将不会如当各个同步服务器114正在其自 身的本地数据存储元件178写入数据以及从其自身的本地数据存储元件178读 取数据时的速度一样快。
尽管被描述为独立的模块,但是应意识到,关于同步服务器114所描述的 多个模块和元件可被组合成一个或多个模块或者进一步被分成一个或多个模 块。该多个模块可以以软件或硬件形式实现,且存储元件178可以以任何合适 的方式实现,例如在一个或多个磁盘驱动器、光存储设备、固态存储设备(例 如随机存取存储器(“RAM”)和/或只读存储器(“ROM”))等上的一个或多个 数据库。
在此还描述了同步服务器114的元件的多个其他特征、操作和用途。另外, 应意识到,同步服务器114,尽管被描述为包括多个模块和部件,其可包括用于 促进在此描述的电子设备的操作的其他元件。本领域技术人员还将意识到,同 步服务器114在具有比图6所示的部件更少数目或者更多数目的部件时,可同 样运行良好。因此,在图6中的同步服务器114的描述应被看作在本质上是示 例性的,且不看作对本教导的范围的限制。
图7为示出根据一实施方式的日志服务器116的部件的简化框图。日志服 务器116包括多个不同的功能模块,包括安全模块180、认证模块182、分类器 模块184和存储元件186。存储元件186可包括多种信息,例如日志信息186A。
安全模块180,与关于客户端设备104描述的安全模块120一样,可操作以 提供系统100的日志服务器116和其他元件(例如客户端设备104)之间的安全 通信。因此,安全模块180可包括与安全模块120的代码或者硬件功能相似的 代码或者硬件功能,以与客户端设备104建立安全连接且通过与客户端设备104 的安全模块120的通信而向客户端设备104认证其身份。
认证模块182也与关于客户端设备104描述的认证模块122相似,且因此 可操作以与客户端设备104的认证模块122通信,进而认证客户端设备104的 身份。因此,认证模块182可包括与客户端设备104的代码或者硬件功能相似 的代码或者硬件功能,以通过与客户端设备104的认证模块122的通信而认证 客户端设备104的身份。
分类器模块186可操作以对从客户端设备提供给日志服务器116的信息(例 如,日志信息)进行分类。在对信息分类中,分类器模块186基于客户端设备 104的认证水平对信息进行分类。这可考虑多种因素中的任一种或多种,例如客 户端设备104是否与日志服务器116建立安全的或非安全的连接,客户端设备 104是否提交分配的凭证或默认凭证,以及所提交的凭证是有效的还是无效的。
如所述,存储元件186可包括多种信息,例如日志信息186A。日志信息186A 可包括客户端设备104希望发送给日志服务器116的多种信息。例如,这可包 括关于设备的状态的信息、关于设备的最近操作的信息、关于设备的环境状况 的信息等。在一个特定的实施方式中,这可包括客户端事件日志(关于客户端 设备感测到的事物的信息)、客户端首次登陆日志(关于设备的系统方面的信息, 例如设备上一次重启的时间、设备上一次建立无线连接的时间等)、以及系统日 志(例如,标准Linux日志)。在一些实施方式中,日志信息186A可基于客户 端设备的认证水平而被存储。即,只有客户端设备已经达到至少特定的认证水平,才可存储一些信息。
尽管被描述为独立的模块,但是应意识到,关于日志服务器116所描述的 多个模块和元件可被组合成一个或多个模块或者进一步被分成一个或多个模 块。该多个模块可以以软件或硬件形式实现,且存储元件186可以以任何合适 的方式实现,例如在一个或多个磁盘驱动器、光存储设备、固态存储设备(例 如随机存取存储器(“RAM”)和/或只读存储器(“ROM”))等上的一个或多个 数据库。
在此还描述了日志服务器116的元件的多个其他特征、操作和用途。另外, 应意识到,日志服务器116,尽管被描述为包括多个模块和部件,其可包括用于 促进在此描述的电子设备的操作的其他元件。本领域技术人员还将意识到,日 志服务器116在具有比图7所示的部件更少数目或者更多数目的部件时,可同 样运行良好。因此,在图7中的日志服务器116的描述应被看作在本质上是示 例性的,且不看作对本教导的范围的限制。
如所述,图8描述了根据一实施方式的存储元件118的内容。存储元件118 可以以任何合适的方式实现,例如在一个或多个磁盘驱动器、光存储设备、固 态存储设备(例如随机存取存储器(“RAM”)和/或只读存储器(“ROM”))等 上的一个或多个数据库。在该特定的示例中,用户A与两个设备即设备A和设 备B相关联。存储元件118包括与设备A相关的桶190,并且包括与设备B相 关的桶192。其他用户,例如用户B和用户C,与其他的桶194和桶196相关联。 如先前所述,桶190A与设备A有关,而桶190B与设备A无关。另外,在该示 例中,桶S是在设备A和设备B之间共享的桶。存储元件118可包括远程服务 器102已知的全部设备的默认凭证198。存储元件118还可包括用于以下这样的 设备的分配的凭证199:已经通过远程服务器102生成用于该设备的分配的凭证。
尽管描述为包括用于多个设备和用户的多个桶,但是应意识到,图8中的 存储元件118的描述仅仅是示例性的且用于说明的目的。实施方式不限于参照 图8所示出且描述的桶的内容或布置。而是,本领域普通技术人员会意识到可 用在各个实现中的无数个变型。
图9示出了根据一实施方式的包含文中所描述的同步机制的协议栈200。通 常,在一些实施方式中,在传输控制协议/互联网协议(TCP/IP)模型中,文中 所述的用于分布式状态的分布的订阅-通知机制(SMSDS)位于安全超文本传输 协议(HTTPS)栈的上层。
具体地,协议栈200包括物理层202、数据链路层204、网络层206、传输 层208和应用层210。物理层202由基本的网络硬件传输技术组成,例如RS-232、 EIA-422、10BASE-T等。数据链路层204在广域网(WAN)内相邻的网络节点 之间传输数据或者在同一局域网(LAN)段上的节点之间传输数据,并且使用 例如以太网、Wi-Fi、令牌环等的技术。网络层206负责数据包转发且使用诸如 互联网协议(IPv4/TPv6/等)的技术。传输层208提供用于应用的端对端通信服 务且使用诸如TCP、用户数据报协议(UDP)、数据报拥塞控制协议(DCCP)、 流控制传输协议(SCTP)等的技术。应用层210建立进程对进程通信且包括使 用诸如HTTP、HTTPS、文件传送协议(FTP)等技术的第一层210A以及实现 SMSDS的第二层210B。
在一个特定的实施方式中,SMSDS可使用HTTP命令,例如GET、PUT、 POST等,其中,HTTP通常在TCP上层而实现。在此公开了使用这种命令的多 个示例。然而,本公开的范围不受限于此,因为在其他实施方式中,SMSDS可 在除TCP之外的协议(例如UDP、DCCP等)的上层实现。因此,图9的协议 栈200的描述应被看作本质上是示例性的,且不限制本教导的范围。
使用基于订阅的通知以促进分布式状态的同步的过程
图10示出根据一实施方式的用于将监控设备连接至远程服务器的过程的通 信序列300。为了促进理解,结合图1至图8描述过程300,然而应理解到,该 过程300的实施方式不限于结合图1至图8所描述的示例性系统和设备。
通常,监控设备108将执行连接过程,在该连接过程中监控设备108为同 步做准备,然后执行同步过程,在同步过程中,监控设备108维持与系统100 的其他实体的稳定状态。存在监控设备108执行连接过程的两种情况:(1)初 始连接(例如,当监控设备在安装后首次连接至系统100时、当监控设备在复 位后首次连接至系统100时等);和(2)后续连接(例如,当监控设备在断电、 通信问题等后,重新连接至系统100时)。参照图10,描述了在用于该两个情况 的多个实施方式中可实现的细微差异。
在操作302中,监控设备108与注册服务器112建立安全连接。监控设备 108可使用例如在监控设备108中硬编码的注册服务器位置128A来最初识别注 册服务器112的位置(例如URI)。一旦识别注册服务器112的位置,监控设备 108的安全模块120可通过注册服务器112的安全模块140与注册服务器112建 立安全连接。该安全模块可使用多个安全通信协议(例如TSL、SSL等)中的 一个或多个来执行握手、(注册服务器112的)认证、以及后续通信的加密。
一旦在监控设备108和注册服务器112之间已建立安全连接,处理可继续 至操作304,在操作304中,监控设备104将注册请求传送给注册服务器112。 该注册请求是除了别的之外,待被分配给同步服务器114A至114M中的一个同 步服务器的请求。该注册请求可包括多种信息中的一个或多个,例如设备标识 符128B、当前软件版本128C等。在如在文中所进一步描述的一个特定的实施 方式中,该注册请求可包括用于帮助向注册服务器112认证监控设备108的默 认凭证。例如,认证模块122可识别存储在监控设备108上的存储元件128内 的默认凭证128E,且可将这些凭证传送给注册服务器112。
响应于接收该注册请求,注册服务器112执行多种操作,所述多种操作中 的一些操作参照操作306至操作314进行描述和说明。在一个实施方式中,且 也在此进一步描述,注册服务器112基于所接收的默认凭证生成分配的凭证(即, 唯一地分配给监控设备108的凭证),且在操作306中,注册服务器112将该分 配的凭证传送回至监控设备108。例如,注册服务器112可使用认证模块142以 核实所接收的默认凭证的有效性、由其生成分配的凭证、以及将该分配的凭证 传送至监控设备108的认证模块122,监控设备108然后可将该分配的凭证在存 储元件128中存储为分配的凭证128F。
在另一实施方式中,注册服务器执行层重定向,其中,注册服务器112将 监控设备108重定向至远程服务器102的另一实例(例如,通过将监控设备108 重定向至注册服务器112的另一实例)。例如,注册服务器112可使用层重定向 模块144以确定监控设备108是否需要被重定向,如果需要重定向,则将重定 向目标位置(例如,URI)传送给监控设备108。如果监控设备108正在执行未 授权的软件,则监控设备108可被重定向至远程服务器102的另一实例,和/或 如果监控设备108被映射到系统100的另一实例,则监控设备108可被重定向至系统100的另一实例。为了促进这种重定向,该注册可使用例如软件版本/层图150C连同所接收的当前软件版本128C,和/或设备ID/层图150D连同所接收 的设备标识符128B。
如果监控设备108要被重定向至系统100的另一实例,则在操作308中, 注册服务器112将重定向目标位置传送给监控设备108。此时,监控设备108将 再一次执行连接过程300,但是是在重定向的目标位置处进行连接过程。否则, 连接过程300可继续。
在一些实施方式中,注册服务器112可启动软件更新过程以确保监控设备 108正在执行所期望的软件版本。尽管可实现大量不同的软件更新过程,但在一 个特定的实施方式中,注册服务器112识别监控设备108的所需软件版本以及 监控设备108可获取更新的软件的目标位置(例如URI),并且将该信息传送给 监控设备108。例如,注册服务器112可使用软件版本/更新程序图150B以识别 该信息,且可随后在操作310中将该信息传送给监控设备108。
在大多数实施方式中,注册服务器112识别多个同步服务器114A至114M 中的被分配给监控设备108从而代表监控设备108执行同步的一个同步服务器。 因此,在操作312中,注册服务器112传送同步服务器114A至114M中的特定 同步服务器(即,分配的同步服务器)的位置标识符(例如URI)。然而,在其 他实施方式中,可仅仅存在一个同步服务器。在该情况下,在操作312中,注 册服务器112可将该一个同步服务器的位置传送给监控设备108,或者在其他实 施方式中,该同步服务器的位置可预先存储在监控设备108上。
一旦注册服务器112已经将分配的同步服务器的身份传送给监控设备108, 则处理可继续至操作314,在操作314中,注册服务器112请求已分配的同步 服务器114创建用于监控设备108的桶。该请求可包括用于命令同步服务器114 以创建合适的桶的多个信息。例如,该请求可包括监控设备108的设备标识符 128B,同步服务器114内的桶生成器168可使用该设备标识符128B以创建存储 元件118内的合适的桶。应意识到,操作314不需要跟随操作312,而是可在接 收或生成用于命令同步服务器114以创建合适桶的信息后的任何其它合适的时 间执行,例如,在接收设备标识符128B后的任何时间执行。
一旦监控设备108获得分配的同步服务器的位置,监控设备108然后可与 该分配的同步服务器建立通信。在一个实施方式中,监控设备108使用例如安 全模块120,如在操作316中所示的,与同步服务器建立安全连接。该分配的同 步服务器114可类似地使用安全模块160以建立安全连接,其中,所述安全连 接可与参照操作302描述的安全连接类似,除了在该情况下安全连接可用于向 监控设备108认证同步服务器114的身份、而不是认证注册服务器112的身份 之外。在至少一个实施方式中,可使用同步服务器114的对于监控设备唯一的 端口来建立安全连接。在这种情况下,同步服务器114可通过设备所连接的连 接端口识别与它连接的设备的类别。在一些实施方式中,所述端口对于特定类 型的监控设备可以是唯一的,或者对于在监控设备上执行的软件的特定版本可 以是唯一的。在这种情况下,同步服务器114不仅可识别与其连接的设备是否 是监控设备,而且可识别监控设备的类型、在该监控设备上运行的软件(例如, 操作系统)的版本等。
一旦已经在监控设备108和分配的同步服务器114之间建立安全连接,则 处理可继续至操作318,在操作318中,监控设备108请求与其相关的所有桶。 在本文中,相关桶为要在监控设备108和系统100的其他元件(例如同步服务 器114)之间同步的那些桶。
一旦同步服务器114使用例如相关桶标识符166和设备标识符/桶图178C识 别与监控设备108相关的桶,如在操作320中描述,则同步服务器114可将用 于各个相关桶的桶标识符传送至监控设备108。在一些实施方式中,可基于其是 初始连接或后续连接,而将不同信息传送至监控设备108。如果其是监控设备 108和同步服务器114之间的初始连接(同步服务器114可执行的判定),则位 于存储元件118处的用于监控设备108的桶将不会被填充。即,它们将是新建 的桶,从而它们的内容将实际上是空的或者无效的,在实现时间戳和/或版本标 识符的实施方式中,在存储元件118处的桶的时间戳和/或版本标识符可类似是 空的或者无效的。因此,对于存储元件118处的相关桶,如已经描述,同步服 务器114可仅仅将用于相关桶的设备标识符传送给监控设备108。然而,如果它 是后续的连接,则存储元件118处的桶可填充内容,以及在一些实施方式中, 填充时间戳和/或版本标识符。因此,对于后续连接,在操作320中,同步服务 器114可不仅用用于相关桶的桶标识符而且用桶内容、时间戳和/或版本标识符 进行响应。
取决于监控设备108和同步服务器114之间的连接是初始连接还是后续连 接,操作322也可不同地实施。如果该连接是初始连接,则在同步服务器114 处的桶将实际上是空的,而在监控设备108处的桶可被填充。在监控设备108 处的桶可从传感器、用户输入、默认值、或者以其他方式进行填充。在这种情 况下,为了使同步服务器114处于与监控设备108相同的初始状态中,监控设 备108将相关桶(即,在操作320识别的那些桶)的内容传送给同步服务器114。 在使用时间戳和/或版本标识符的实施方式中,在该初始状态下,监控设备108 处的桶将不会与时间戳和/或版本标识符相关联,因为在许多实施方式中,时间 戳和/或版本标识符在同步服务器接收桶内容时而被同步服务器分配。因此,在 初始连接期间,在操作322中,对于在监控设备108处的桶,监控设备108可 仅仅将桶内容(和,例如桶标识符以促进在同步服务器114处的桶识别)传送 给同步服务器。
另一方面,如果它是后续通信,则在监控设备108和同步服务器114两者 处的桶应具有内容,且在一些实施方式中,还应具有时间戳和/或版本标识符(尽 管它们在这种情况下可以不是相同的,例如同步服务器被更新而监控设备离线, 或者在重新连接至同步服务器之前,监控设备被更新)。因此,监控设备108不 需要将其全部的桶内容传送至同步服务器114(尽管在一些实施方式中它可以这 样做)。相反,监控设备108可确定它是否具有比在同步服务器114处的桶更新 的桶,并且,如果有,则可仅仅传送更新的桶的内容。在一些情况下,即使监 控设备108具有更新的桶,它也可不将任何内容传送给同步服务器114。
如在操作324中所述,响应于接收全部内容或者仅仅更新的内容,同步服 务器114可生成和传送响应。响应于接收桶内容,在一些实施方式中,同步服 务器114生成用于桶的时间戳(使用例如时间戳生成器172)、和/或生成用于桶 的版本标识符(使用例如版本生成器170)。同步服务器114然后可将生成的时 间戳和/或版本标识符分配给桶,且(除了与时间戳和/或版本标识符相关的桶标 识符外)还将各个分配的时间戳和/或版本标识符传送回至监控设备108。监控 设备108然后可将所接收的时间戳和/或版本标识符分配给它自己的桶,使得在 监控设备108处的桶的状态(例如,在监控设备108处的相关桶的内容、时间戳和版本标识符)与在同步服务器114处的桶的状态相同(例如,在存储元件 118处的相关桶的内容、时间戳和版本标识符)。
一旦完成该初始状态同步,则监控设备108向同步服务器114订阅所有相 关的桶。即,如在操作326中描述,监控设备108可将用于订阅全部相关桶的 请求传送给同步服务器114。监控设备108可基于在操作320中提供给监控设备 108的相关桶的身份,来识别要订阅的相关桶。通过订阅相关桶,监控设备108 请求通过同步服务器114通知在同步服务器114处的相关桶的任何变化。
在一个特定的实施方式中,可使用长轮询来实现订阅请求。即,同步服务 器114可保持该订阅请求(即,不对该请求响应),直到在同步服务器114处发 生相关桶中的一个相关桶的变化、或者相关桶中的一个相关桶的变化被传送给 同步服务器114,或者在一些实施方式中,直到到达超时时段。以这种方式, 监控设备108可非常适于显著地减小其操作功率,因为它可需要与同步服务器 114周期性地进行通信(例如,消耗功率的无线通信)(即,它可需要仅仅周期 性地传送订阅请求)。超时时段(以及因此以下这样的时段:在该时段期间,监 控设备108需要传送新的订阅请求以避免通过注册服务器112的重新连接过程) 可被设定以在功率效率和通信可靠性的估算之间平衡。例如,超时时段可为15 分钟、30分钟、60分钟、75分钟、90分钟、在15分钟至90分钟的范围内、 小于15分钟或大于90分钟。一旦超时时段期满,在许多实施方式中,同步服 务器114会将表示超时时段结束的信息传送给客户端设备104。例如,同步服务 器114可发送HTTP 200状态码至客户端设备104。应意识到,尽管在一些实施 方式中,如果超时时段期满,则客户端设备104可随后开始重新初始化过程(例 如,如参照图10所述),而在其他实施方式中,客户端设备104可首先尝试重 新订阅其相关桶(例如,如在操作326中所述)以维持长轮询。
在一些实施方式中,监控设备108可希望退订接收关于其相关桶的变化的 通知。为此,监控设备108仅仅需要关闭它与同步服务器114的连接。例如, 在文中所述技术以HTTP/TCP实现的实施方式中,监控设备108仅仅需要关闭 与同步服务器114的HTTP/TCP连接。另外,在实现HTTP/TCP协议的实施方 式中,可使用合适的HTTP命令来促进订阅请求。例如,订阅请求可使用HTTP POST命令(例如“POST/订阅”)来实现。更进一步地,在一些实施方式中, 可实现会话标识符,其中,会话标识符识别监控设备108和同步服务器114之 间的唯一通信会话。在这类实施方式中,监控设备108可生成会话标识符(使 用例如会话ID生成器模块126)且将该会话标识符与订阅请求一起传送给同步 服务器114。
应理解到,在图10中示出的具体操作提供了根据一实施方式的用于将监控 设备连接至远程服务器的特定过程。根据可替选的实施方式,也可执行其他序 列的操作。例如,本发明的可替选的实施方式可以不同的次序执行上文所概述 的操作。此外,在图10中示出的各个操作可包括多个子操作,该子操作可以适 合于该各个操作的各种顺序执行。另外,根据特定的应用,可增加额外的操作 或者可去除现有的操作。本领域普通技术人员将意识且理解到许多变型、修改 和变更。
图11示出根据一实施方式的用于将接入设备连接至远程服务器的过程的通 信序列400。为了促进理解,过程400结合图1至图8进行描述,然而应理解到, 过程400的实施方式不限于结合图1至图8所描述的示例性系统和设备。
与作为桶内容的“所有者”的监控设备108(即,其默认地生成桶内容)相 反,接入设备110通常访问且在一些实施方式中改变监控设备108的桶的内 容。然而,与监控设备108一样,接入设备110也将执行连接过程(在该过程 中它为同步做准备)以及之后的同步过程(在该同步过程中,它与系统100的 其他实体维持稳定状态)。
启动时(例如当接入设备通电时、当打开网络浏览器时、当执行软件应用 程序时等),如操作402中所述,接入设备110与注册服务器112建立安全连接。 操作402与操作302类似,除了在该情况下注册服务器位置128A可不必硬编码 到接入设备110内而是可作为安装在接入设备110上的软件应用程序的一部分 之外。作为建立安全连接的结果,后续通信可被加密且可向接入设备110认证 注册服务器112的身份。还应意识到,尽管在该实施方式中,接入设备110和 参照图9所述的监控设备108,与相同的注册服务器112建立安全连接,但在其 他实施方式中,可存在具有类似功能的多个注册服务器,在该情况下接入设备 使用一个注册服务器而监控设备使用不同的注册服务器。
如在与操作304类似的操作404中所述,接入设备110然后可将注册请求 传送给注册服务器112。然而,在该情况下,接入设备110可不具有硬编码在其 内的设备标识符。而是,在一些实施方式中,用户可输入用户标识符(例如, 登录名称)作为设备标识符,该设备标识符随后作为注册请求的一部分被传送。 注册服务器112然后可执行多种操作,例如层重定向(与操作308类似的操作 406)、软件更新(与操作310类似的操作408)、以及识别分配的同步服务器(与 操作312类似的操作410)。在许多实施方式中,接入设备110可与一个或多个 监控设备108相关联。例如,接入设备110和一个或多个监控设备108均可与 相同的用户账户配对。用于执行配对操作的多种技术在上述的美国专利序列号 13/275,311中进行了描述。在这种情况下,分配给一个或多个接入设备110的同 步服务器可与分配给相关联的一个或多个监控设备的同步服务器相同。
一旦接入设备110获得分配的同步服务器的目标位置,则接入设备110可然 后与该分配的同步服务器建立通信。在一个实施方式中,如在与操作316类似 的操作412中所述,接入设备110与同步服务器建立安全连接。然而,在该情 况下,可使用同步服务器114的对于接入设备唯一的端口建立该安全连接。在 这种情况下,同步服务器114可操作以通过该连接端口识别与其连接的接入设 备的类型。在一些实施方式中,该端口可对于特定类型的接入设备是唯一的, 或者可对于在接入设备上执行的特定版本的软件是唯一的。在这种情况下,同 步服务器114可不仅识别与其连接的设备是否是接入设备(与监控设备或者其他类型的客户端设备对比),而且还识别接入设备的类型、在该接入设备上运行 的软件(例如,操作系统)的版本等。
一旦已经建立安全连接,处理可继续至操作414,在操作414中,接入设 备110请求与其相关的所有桶。关于这点,相关桶为要在接入设备110和系统 100的其他元件(例如一个或多种监控设备108)之间同步的那些桶。在一些实 施方式中,所述相关桶可为与配对的监控设备相关的桶相同的桶。然而,在其 他实施方式中,所述相关桶可为与配对的监控设备相关的桶的子集。例如,当 初始化时,接入设备110例如由于带宽限制可不请求全部相关桶。因而,接入 设备110可不请求具有相对大量的字段-值对的桶。在一些情况中,在初始化时 未被请求的桶可随后被请求。例如,在接入设备实施标签式的图形用户界面 (GUI)时,显示给用户的初始标签可反映用于在初始化时被请求的桶的数据。 当用户切换至不同的标签时,接入设备然后可提交需要反映作为不同标签的一 部分的所请求的数据的桶的请求。
一旦同步服务器114使用例如相关桶标识符166和设备标识符/桶图178C识 别与接入设备110相关的桶,如在操作416中描述,则同步服务器114可将用 于各个相关桶的桶内容(以及用于识别与这些内容相关联的桶的桶标识符)传 送至接入设备110。在使用时间戳和/或版本标识符的实施方式中,时间戳和/或 版本标识符也可被传送给接入设备110。在许多实施方式中,如在图11中所述, 在每次初始化期间桶内容被传送,这是因为如果接入设备110关闭其与同步服 务器114的连接(例如,如果接入设备110断电、网络浏览器窗口被关闭、应 用程序软件进程结束等),这些内容可被擦除或者无效。然而,在其他实施方式中,桶的当前状态的指示(例如桶版本),而不是桶内容,可被传送,且接入设 备110会确定在同步服务器114处存储的桶是否比在接入设备110处存储的桶更 新。只有在同步服务器114处的桶的内容比在接入设备110处的桶的内容更新 时,接入设备110才可随后请求和接收桶内容。
一旦完成该初始状态同步,如在操作418中所述,则接入设备110向同步 服务器114订阅所有相关的桶。这与操作326类似,但是在该情况下,接入设 备110可订阅所有相关的桶,或者如上所述,订阅相关桶的子集。
应理解到,在图11中所示的具体操作提供根据一实施方式的用于将接入设 备连接至远程服务器的特定过程。根据可替选的实施方式也可执行其他序列的 操作。例如,本发明的可替选的实施方式可以不同的次序执行上文概述的操作。 此外,在图11中示出的各个操作可包括多个子操作,该子操作可以适合于各个 操作的不同顺序执行。另外,根据特定的应用,可增加额外的操作或者可去除 现有的操作。例如,接入设备可不接收来自注册服务器的如参照操作408所述 的软件更新,而是可以其他方式,例如用户-引发的或者操作系统-引发的从软件 储存库的下载来接收软件更新。又例如,接入设备可不参与层重定向(即,操 作406)。本领域普通技术人员将意识且理解到许多变型、修改和变更。
图12示出根据一实施方式的当在系统的监控设备处发起状态变化时用于使 系统的实体之间的状态同步的过程的通信序列500。在该特定的示例中,桶的状 态在监控设备108处改变、与在存储元件118中的对应桶的状态同步、并且与 在其他客户端设备(诸如其他监控设备和/或一个或多个接入设备)处的对应桶 同步。为了便于理解,过程500结合图1至图8进行描述,然而应理解到,过 程500的实施方式不限于结合图1至图8所描述的示例性系统和设备。
在操作502中,与监控设备108相关联的其它客户端设备(例如接入设备 110)将订阅请求传送给同步服务器114,其中,该请求用于订阅在监控设备108 处提供的桶。
在操作504中,已经接收到(通过用户、通过在监控设备108中设置的算 法等)对于其先前订阅的桶的所需的更新的监控设备108,毁除(tear down)其 包括其期望进行更新的桶的订阅请求。监控设备108可以以一种或多种不同方 式来毁除它的订阅请求。例如,在操作326中,当监控设备108订阅与其相关 的桶时,订阅请求可以凭借长轮询过程在特定的插槽上被传送。监控设备108 然后可关闭该特定的接口且在另一接口上与同步服务器114执行进一步通信。 又例如,监控设备108可将订阅取消请求传送给同步服务器114,该订阅取消请 求请求同步服务器114停止通知监控设备108在该请求中所识别的桶(例如相 关桶)的变化。
一旦订阅请求被毁除,在操作506中,监控设备108将其所期望的桶更新 传送给同步服务器。该所期望的更新可包括新的桶内容以及识别与新内容相关 联的桶的桶标识符。在一些情况中,监控设备108可包括其他信息(例如时间 戳和/或版本标识符)以及所期望的更新。
在操作508中,当接收所期望的桶更新时,同步服务器114对所期望的桶 更新与在存储元件118处存储的对应桶进行协调一致。通过使所期望的更新与 在存储元件118处的对应桶协调一致,同步服务器114可接受所期望的更新或 者拒绝所期望的更新。在接受所期望的更新中,同步服务器可将该更新合并到 在存储元件118处的对应桶中,或者在一些情况中,可利用所期望的更新完全 覆写存储元件118处的对应桶的内容。由于同步服务器114可接受或拒绝所期 望的更新,故在同步服务器114处的桶的结果内容可以与监控设备108所期望 的一样(如果所期望的更新被接受)或者可以与监控设备108所期望的更新不同(如果所期望的更新被拒绝)。例如,可凭借协调模块174来实施这种协调。
一旦所期望的更新与在存储元件118处存储的对应桶协调一致时,在操作 510中,同步服务器将用于使监控设备桶与在存储元件118处的对应桶协调一致 的信息传送给监控设备108。这可包括确认接受所期望的更新的信息或者指示拒 绝所期望的更新的信息。这也可包括或者可替选地包括信息,例如新的时间戳、 新的版本标识符、以及在一些实例中用于监控设备处的桶的新内容。
响应于接收这种信息,在操作512中,监控设备108使其存储的桶与在存 储元件118处的对应桶协调一致。例如,如果所期望的更新被接受,则监控设 备可接收新的时间戳和/或版本标识符并且将新的时间戳和/或版本标识符应用 于其现有的桶。然而,如果所期望的更新被拒绝,且从同步服务器114发送新 的桶内容,则监控设备108可利用从同步服务器114所接收的新的桶内容重写 (或者合并到)其现有的桶内容、且应用从同步服务器114所接收的新的时间 戳和/或版本标识符。例如,可凭借协调模块124来执行这种协调。由于这种协 调,在监控设备108处的桶的状态应与在同步服务器114处的桶(即,在存储 元件118中的对应桶)的状态相同。
在操作514中,与操作326类似,监控设备108可再次将订阅请求传送给 同步服务器。然而,应意识到,订阅请求的毁除和再传送纯粹是可选的,在一 些实施方式中,这种操作可被部分地或完全省略。
一旦同步服务器114已经使所期望的更新与其自身的对应桶协调一致时, 同步服务器114从而可将协调信息不仅传送给监控设备而且还传送给订阅在存 储元件118处的该桶的其他设备。例如,因为在该情况下,其它客户端设备具 有待决的对于桶的订阅请求(由于操作502),故在操作516中,同步服务器可 将用以使该其它客户端设备的桶与同步服务器114处的对应桶协调一致的信息 传送给所述其它客户端设备。这种传送尤其非常适于所期望的更新被接受的情 形,但是,尽管从监控设备108接收所期望的更新而在同步服务器的桶的状态 仍保持不变的情况下,可省略该传送。
如果协调信息被传送给该其它客户端设备,则在操作518中,该其它客户 端设备可利用该信息以使其自身的存储的桶与在同步服务器114处的对应桶相 协调一致。从而,在该其它客户端设备处的桶的状态应不仅与在同步服务器114 处的桶的状态相同,而且还与在监控设备108处的对应桶的状态相同。
应理解到,图12中所示的具体操作提供根据一实施方式的当在系统的监控 设备处发起状态变化时用于使系统的实体之间的状态同步的的特定过程。根据 可替选的实施方式也可执行其他序列的操作。例如,本发明的可替选的实施方 式可以不同的次序执行上文概述的操作。在一个特定的实施方式中,操作516 可紧跟在操作508后进行和/或与操作510同时进行。此外,在图12中示出的各 个操作可包括多个子操作,该子操作可以以适合于各个操作的不同顺序执行。 另外,根据特定的应用,可增加额外的操作或者可去除现有的操作。本领域普 通技术人员将意识且理解到许多变型、修改和变更。
图13示出根据一实施方式的当在系统的接入设备处发起状态变化时用于使 系统实体之间的状态同步的过程的通信序列600。在该特定的示例中,桶的状态 在接入设备110处改变、与在存储元件118中的对应桶的状态同步、并且与在 相关的监控设备108处的对应桶同步。为了便于理解,过程600结合图1至图8 进行描述,然而应理解到,过程600的实施方式不限于结合图1至图8所描述 的示例性系统和设备。
在操作602中,监控设备108将订阅请求传送给同步服务器114,其中,该 请求用于订阅相关的接入设备110期望变化的桶。
在操作604中,已经接收到(例如通过接入设备的用户)对于在监控设备 108处提供的且其先前订阅的桶的所期望的更新的接入设备110,毁除其包括其 期望进行更新的订阅请求。接入设备110可以以与参照图12所述的那些方式类 似的一种或多种不同方式来毁除它的订阅请求。
在操作606中,一旦订阅请求被毁除,则接入设备110将其所期望的桶更 新传送给同步服务器。该所期望的更新可包括新的桶内容以及识别与新内容相 关联的桶的桶标识符。在一些情况中,接入设备110可包括其他信息(例如时 间戳和/或版本标识符)以及所期望的更新。
当接收到所期望的桶更新时,在操作608中,同步服务器使所期望的桶更 新与在存储元件118处存储的对应桶相协调一致。与参照操作508描述类似, 通过使所期望的更新与在存储元件118处的对应桶相协调一致,同步服务器114 可接受所期望的更新或者拒绝所期望的更新,且可合并在存储元件118处的桶 的内容或替换在存储元件118处的桶的内容。例如,可凭借协调模块174来实 施这种协调。
一旦所期望的更新与在存储元件118处存储的对应桶协调一致,同步服务 器将用于使接入设备的桶与在存储元件118处的对应桶协调一致的信息传送给 接入设备110。这可包括确认接受所期望的更新的信息或者指示拒绝所期望的更 新的信息。这也可包括或者可替选地包括信息,例如新的时间戳、新的版本标 识符、以及在一些实例中用于桶的新内容。
响应于接收到这种信息,在操作612中,接入设备110使其存储的桶与在 存储元件118处的对应桶协调一致。例如,如果所期望的更新被接受,则接入 设备可接收新的时间戳和/或版本标识符并且将新的时间戳和/或版本标识符应 用于其现有的桶。然而,如果所期望的更新被拒绝,且从同步服务器114发送 新的桶内容,则接入设备110可利用从同步服务器114所接收的新的桶内容重 写(或者合并到)其现有的桶内容、且应用从同步服务器114所接收的新的时 间戳和/或版本标识符。例如,可凭借协调模块124来执行这种协调。由于这种 协调,在接入设备110处的桶的状态应与在同步服务器114处的桶(即,在存 储元件118中的对应桶)的状态相同。
在操作614中,与操418类似,接入设备110可再次将订阅请求传送给同 步服务器。然而,应意识到,订阅请求的毁除和再次传送纯粹是可选的,在一 些实施方式中,这种操作可被部分地或完全省略。
一旦同步服务器114已经使所期望的更新与其自身的对应桶协调一致,同 步服务器114从而可将协调信息不仅传送给接入设备而且还传送给订阅该桶的 其他设备(包括一个或多个监控设备)。例如,因为在该情况下监控设备108具 有待决的对于桶的订阅请求(由于操作602),故在操作616中,同步服务器可 将用于使监控设备108的桶与同步服务器114处的对应桶协调一致的信息传送 给监控设备108。这种传送尤其非常适于所期望的更新被接受的情形,但是,在 尽管从接入设备110接收所期望的更新而在同步服务器的桶的状态仍保持不变 的情况下,可省略该传送。
如果协调信息被传送给监控设备108,则在操作618中,监控设备108可利 用该信息以使其自身的存储的桶与在同步服务器114处的对应桶相协调一致。 从而,在监控设备108处的桶的状态应不仅与在同步服务器114处的桶的状态 相同,而且还与在接入设备110处的对应桶的状态相同。
应理解到,图13中所示的具体操作提供根据一实施方式的当在系统的接入 设备处发起状态变化时用于使系统的实体之间的状态同步的特定过程。根据可 替选的实施方式也可执行其他序列的操作。例如,本发明的可替选的实施方式 可以以不同的次序执行上文概述的操作。此外,图13中示出的各个操作可包括 多个子操作,该子操作可以以适合于各个操作的多个顺序执行。在一个特定的 实施方式中,操作616可紧跟在操作608之后执行和/或与操作610同时执行。 另外,根据特定的应用,可增加额外的操作或者可去除现有的操作。本领域普 通技术人员将意识且理解到许多变型、修改和变更。
图14示出根据一实施方式的当在系统的同步服务器处发起状态变化时用于 使系统的实体之间的状态同步的过程的通信序列700。在该特定的示例中,桶的 状态在同步服务器102处改变且与在一个或多个客户端设备104处的对应桶的 状态同步。为了便于理解,过程700结合图1至图8进行描述,然而应理解到, 过程700的实施方式不限于结合图1至图8所描述的示例性系统和设备。
在操作702中,客户端设备(例如,一个或多个监控设备108和/或一个或 多个接入设备110)将订阅请求传送给同步服务器114,其中,该请求用以订阅 在同步服务器102处(例如在存储元件118内)提供的桶。
在操作704中,同步服务器102改变所订阅的桶的状态。例如,响应于在 同步服务器102处执行的一个或多个算法,同步服务器102可变更在远程服务 器102处的桶的内容。
一旦桶的状态在同步服务器102处变化,则同步服务器可识别订阅该桶的 客户端设备。这可以例如通过协调模块174来完成。在操作706中,同步服务 器706然后将用于使客户端设备的桶与在存储元件118处的对应桶协调一致的 信息传送给已识别的客户端设备。这可包括诸如新的时间戳、新的版本标识符、 以及在许多实例中用于桶的新内容的信息。
响应于接收这种信息,在操作708中,客户端设备104使其存储的桶与在 存储元件118处的对应桶相协调一致。例如,客户端设备104可利用从同步服 务器114接收的桶内容重写(或合并到)其现有的桶内容、并且应用从同步服 务器114所接收的新的时间戳和/或版本标识符。例如,可通过协调模块124来 执行这种协调。由于这种协调,在客户端设备104处的桶的状态应与在同步服 务器114处的桶(即,在存储元件118中的对应桶)的状态相同。
应理解到,图14中所示的具体操作提供根据一实施方式的当在系统的同步 服务器处发起状态变化时用于使系统的实体之间的状态同步的特定过程。根据 可替选的实施方式也可执行其他序列的操作。例如,本发明的可替选的实施方 式可以以不同的次序执行上文概述的操作。此外,图14中示出的各个操作可包 括多个子操作,该子操作可以以适合于各个操作的多个顺序执行。另外,根据 特定的应用,可增加额外的操作或者可去除现有的操作。本领域普通技术人员 将意识且理解到许多变型、修改和变更。
图15A示出根据一实施方式的用于执行例如在操作308和/或操作406中描 述的层重定向的过程的通信序列800。为了便于理解,过程800结合图1至图8 进行描述,然而应理解到,过程800的实施方式不限于结合图1至图8所描述 的示例性系统和设备。
如所述,基于设备标识符和软件版本中的一个或多个可执行层重定向。因 此,在操作802中,客户端设备104可以向注册服务器提供设备标识符(例如 设备标识符128B)和/或当前软件版本(例如当前软件版本128C)。响应于确定 客户端设备104需要被重定向至系统100的另一实例,在操作804中,注册服 务器112将客户端设备104重定向至第二注册服务器(即,注册服务器112的 另一实例)。例如,注册服务器112可将第二注册服务器的目标位置(例如,URI) 传送给客户端设备104。在操作806,客户端设备104然后可利用第二注册服务 器执行初始化过程(例如,如参考图10或图11所述的初始化过程)。
图15B为根据一实施方式的客户端设备用于执行层重定向的过程810的流 程图。在操作812中,客户端设备104发送设备标识符和/或软件版本到注册服 务器。在操作814中,客户端设备104确定它是否接收到重定向。如果没有接 收到,则处理继续至操作816,在操作816处,客户端设备104继续它的初始化 过程。如果接收到,则处理继续至操作818,在操作818处,客户端设备104利 用第二注册服务器开始新的初始化过程。
图15C为根据一实施方式的注册服务器用于执行层重定向的过程820的流 程图。在操作822中,注册服务器112从客户端设备104接收设备标识符和/或 软件版本标识符。在操作824中,注册服务器确定客户端设备104的层。例如, 所接收到的设备标识符可与设备标识符/层图150D比较,和/或软件版本标识符 与软件版本/层图150C比较。层图可基于软件版本和/或设备标识符指示客户端 设备所属的层,从而可指示客户端设备是否应被重定向至系统100的另一实例。 在操作826,如果确定不需要重定向,则处理继续至操作828,在操作828处, 注册服务器820利用客户端设备104继续初始化过程。否则,处理继续至操作830,在操作830处,注册服务器830将客户端重定向至第二注册服务器830。 在一些实施方式中,参考注册服务器112描述的一个或多个操作可通过在注册 服务器112内的合适的软件或硬件模块来执行,例如层重定向模块144。
应理解到,图15A至图15C中示出的具体操作提供了根据多个实施方式的 用于执行层重定向的特定过程。根据可替选的实施方式也可执行其他序列的操 作。例如,本发明的可替选地实施方式可以以不同的次序执行上文概述的操作。 此外,在图15A至图15C中示出的各个操作可包括多个子操作,该子操作可以 以适合于各个操作的多个顺序执行。另外,根据特定的应用,可增加额外的操 作或者可去除现有的操作。本领域普通技术人员将意识且理解到许多变型、修 改和变更。
图16A示出根据一实施方式的用于执行例如在操作310和/或操作408中描 述的软件更新的过程的通信序列900。为了便于理解,过程900结合图1至图8 进行描述,然而应理解到,过程900的实施方式不限于结合图1至图8所描述 的示例性系统和设备。
在操作902中,注册服务器112可向客户端设备104提供指示合适的软件 版本的信息。指示合适的软件版本的信息可指示注册服务器期望客户端设备执 行的软件版本。在操作904中,注册服务器112还可提供软件更新服务器或系 统的目标位置(例如URI),在该目标位置处,客户端设备104可获取软件。随 后,如果客户端设备104确定它需要软件更新,则在操作906中它传送用于请 求来自注册服务器所识别的软件更新服务器的软件更新的请求。然后,在操作 908中,软件更新服务器可通过提供更新的软件给客户端设备104而进行响应。
图16B为根据一实施方式的客户端设备执行软件更新的过程910的流程图。 在操作912中,客户端设备104从注册服务器112处接收指示合适的软件版本 的信息902和软件更新服务器的目标位置904。然后,在操作914中,客户端设 备104确定其是否需要软件更新。例如,客户端设备可将其当前软件版本128C 与所接收的指示合适软件版本的信息相比较,如果它们是相同的,则客户端设 备可确定它不需要软件更新且处理可继续至操作916,在操作916处,继续初始 化过程。否则,处理可继续至操作918,在操作918处,客户端设备向软件更新 服务器请求软件更新。在操作920中,客户端设备接收更新的软件版本,以及 在操作922中,客户端设备基于所更新的版本更新其当前软件。
图16C为根据一实施方式的注册服务器执行软件更新的过程930的流程图。 在操作932中,注册服务器112接收用于客户端设备104的设备标识符。处理 继续至操作934,在操作934处,确定客户端设备104的合适的软件版本。例如, 注册服务器112可将所接收的设备标识符与设备软件版本/更新程序图150B比 较,以识别用于客户端设备104的合适的软件版本。在操作936中,注册服务 器112确定软件更新服务器的目标位置,该目标位置可被存储在注册服务器112 处、包括在软件版本/更新程序图150B中、或者通过注册服务器112进行访问。 然后在操作938中,注册服务器112可将指示合适的软件版本的信息和软件更新服务器的目标位置传送给客户端设备104。在一些实施方式中,关于注册服务 器112描述的一个或多个操作可通过在注册服务器112内的合适的软件或硬件 模块来执行,例如软件更新模块146。
应理解到,在图16A至图16C中示出的具体操作提供了根据多个实施方式 的用于执行软件更新的特定过程。根据可替选的实施方式也可执行其他序列的 操作。例如,本发明的可替选的实施方式可以以不同的次序执行上文概述的操 作。此外,在图16A至图16C中示出的各个操作可包括多个子操作,该子操作 可以适合于各个操作的多个顺序执行。另外,根据特定的应用,可增加额外的 操作或者可去除现有的操作。本领域普通技术人员将意识且理解到许多变型、 修改和变更。
图17A示出根据一实施方式的用于识别例如在操作312和/或操作410中描 述的分配的同步服务器的过程的通信序列1000。为了便于理解,过程1000结合 图1至图8进行描述,然而应理解到,过程1000的实施方式不限于结合图1至 图8所描述的示例性系统和设备。
如先前结合图10和图11所述,注册服务器112可确定和传送分配的同步服 务器的身份(例如,目标位置)。在这样做时,在操作1002中,注册服务器112 可将用于请求所分配的同步服务器的身份的请求传送给多个同步服务器114A 至114M中的一个同步服务器。在该特定的示例中,该请求被传送至同步服务器 114B,同步服务器114B可被随机选择或者使用其他技术进行选择。该请求包括 设备标识符。同步服务器114B然后可确定同步服务器114A至114M中的哪一 个应当被分配给客户端设备。在操作1004中,同步服务器114B然后可将分配 的同步服务器(其可为同步服务器114A至114M中的任一个)的身份(例如 URI)传送给注册服务器112。注册服务器112然后可将分配的同步服务器的身 份转发给客户端设备。
图17B为根据一实施方式的注册服务器识别分配的同步服务器的过程1010 的流程图。在操作1012中,注册服务器识别同步服务器114A至114M中的要 向其递交请求(用于识别分配的同步服务器的请求)的一个同步服务器。例如, 注册服务器112可随机地、顺序地、借助负荷平衡器(例如,将该请求传送给 具有最低负荷的同步服务器)、或者以一些其他合适的方式识别同步服务器。在 该特定的示例中,注册服务器识别同步服务器114B。在操作1014中,注册服务 器将用于识别分配给客户端设备的同步服务器的请求发送至已识别的同步服务 器(在该示例中服务器114B)。在操作1016中,注册服务器112(例如同步服务器识别模块148)确定是否已经接收到同步服务器的标识符。如果未接收到, 处理可返回至操作1014,在操作1014处,请求被重新发送。否则,处理可继续 至操作1018,在操作1018中,所接收的标识符被传送给客户端设备。在一些实 施方式中,关于注册服务器112描述的一个或多个操作可通过在注册服务器112 内的合适的软件或硬件模块来执行,例如同步服务器识别模块148。
图17C为根据一实施方式的用于同步服务器识别分配的同步服务器的过程 1020的流程图。在操作1022中,同步服务器(在该特定示例中,同步服务器 114B)接收用以识别分配给由所接收的设备标识符识别的客户端设备的同步服 务器的请求。在操作1024中,同步服务器114B确定分配的同步服务器的身份。 例如,同步服务器114B可执行一致性散列算法以进行这种确定。为了便于识别 特定的同步服务器,各个同步服务器114A至114M可了解系统100内的全部同 步服务器。例如,这可通过使用同步服务器标识符178A来提供。同步服务器(例 如,同步服务器114B)然后可使用一致性散列算法和同步服务器标识符推敲所 接收的设备标识符。一旦分配的同步服务器的身份被确定,则在操作1026中, 同步服务器114B可将该身份传送给注册服务器112。在一些实施方式中,关于 同步服务器114B描述的一个或多个操作可通过在同步服务器内的合适的软件或 硬件模块来执行,例如客户端分配器模块164。
应理解到,在图17A至图17C中示出的具体操作提供了根据多个实施方式 的用于识别分配的同步服务器的特定过程。根据可替选的实施方式也可执行其 他序列的操作。例如,本发明的可替选的实施方式可以以不同的次序执行上文 概述的操作。此外,在图17A至图17C中示出的各个操作可包括多个子操作, 该子操作可以以适合于各个操作的多个顺序执行。另外,根据特定的应用,可 增加额外的操作或者可去除现有的操作。本领域普通技术人员将意识且理解到 许多变型、修改和变更。
图18A示出根据一实施方式的用于创建例如在操作314中描述的桶的过程 的通信序列1100。为了便于理解,过程1100结合图1至图8进行描述,然而应 理解到,过程1100的实施方式不限于结合图1至图8所描述的示例性系统和设 备。
如先前结合图10所述,当监控设备108初始连接至注册服务器112时,同 步服务器可创建用于监控设备108的信息桶。为了促进该过程,在操作1102中, 注册服务器112可将请求同步服务器114创建用于客户端设备的桶的请求传送 给同步服务器114。该请求可被发送给分配的同步服务器,且可包括设备标识符。 作为响应,同步服务器114可生成桶,且在操作1104中,将所述桶被创建的确 认通知传送给注册服务器112。
图18B为根据一实施方式的注册服务器创建信息桶的过程1110的流程图。 在操作1112中,注册服务器112生成用以创建用于客户端设备的桶的请求。该 请求可包括从客户端设备接收到的设备标识符。在操作1114中,注册服务器112 将该请求传送至分配的同步服务器。在操作1116中,注册服务器112确定是否 接收到桶被创建的确认通知。如果没有接收到确认通知,则处理可返回至操作 1114,在操作1114处,请求被重新发送。如果接收到确认通知,则处理可持续 至操作1118,在操作1118处,继续初始化过程。
图18C为根据一实施方式的同步服务器创建信息桶的过程1120的流程图。 在操作1122中,同步服务器114接收用以创建用于客户端设备(诸如监控设备108)的桶的请求。在操作1124中,同步服务器确定为监控设备创建哪些桶。 例如,同步服务器114可将所接收的设备标识符与设备标识符/桶图178C比较以 确定要针对该设备标识符创建的合适的桶。不同类型的客户端设备可具有出于 它们的用途创建的不同的桶的集合。例如,恒温器可创建有温度相关的桶,然 而危险检测单元(例如,烟雾检测器)可创建有烟雾相关的桶。在操作1126中, 同步服务器114创建用于监控设备的桶。在操作1128中,同步服务器114将具 有空值字段的那些桶存储在存储元件118中。在操作1130中,同步服务器114 使所创建的桶与设备相关联,且在操作1132中,同步服务器114将成功创建桶 的确认通知发送给注册服务器112。在一些实施方式中,关于同步服务器114描 述的一个或多个操作可通过在同步服务器114内的合适的软件或硬件模块来执 行,例如桶生成器模块168。
应理解到,在图18A至图18C中示出的具体操作提供了根据多个实施方式 的用于创建桶的特定过程。根据可替选的实施方式也可执行其他序列的操作。 例如,本发明的可替选的实施方式可以以不同的次序执行上文概述的操作。此 外,在图18A至图18C中示出的各个操作可包括多个子操作,该子操作可以以 适合于各个操作的多个顺序执行。另外,根据特定的应用,可增加额外的操作 或者可去除现有的操作。本领域普通技术人员将意识且理解到许多变型、修改 和变更。
图19A示出根据一实施方式的用于请求例如在操作318和操作414中描述 的相关桶的过程的通信序列1200。为了便于理解,过程1200结合图1至图8进 行描述,然而应理解到,过程1200的实施方式不限于结合图1至图8所描述的 示例性系统和设备。
如先前结合图10和图11所述,客户端设备可向同步服务器请求并从同步 服务器处获取关于与该设备相关的桶的信息。为了促进该过程,在操作1202中, 客户端设备104可将请求关于与客户端设备104相关的所有桶的信息的请求传 送给同步服务器114。该请求可包括客户端设备104的设备标识符。作为响应, 在操作1204中,同步服务器114可提供关于与客户端设备相关的桶的信息。如 已经描述地,响应可包括针对该相关桶的桶标识符、桶内容、时间戳和版本标 识符的一些或全部。
图19B为根据一实施方式的客户端设备请求与其相关的桶的过程1210的流 程图。在操作1212中,客户端设备104生成用于相关桶的请求。例如,在使用 HTTP通信的实施中,该请求可以是“HTTP GET”命令的形式。在操作1214 中,客户端设备104将该请求传送给分配的同步服务器114。在操作1216中, 客户端设备104确定是否接收到对于该请求的响应。如果没有接收到,则处理 可返回至操作1214,且客户端设备104可重新发送该请求。否则,处理可继续 至操作1218,在操作1218中,客户端设备104将该响应并入到其自身的桶结构中。
用于并入该响应的技术可取决于设备的类型(例如,监控设备、接入设备 等)以及设备的操作历史(例如,初始连接、后续连接等)。对于执行初始连接 的监控设备,该响应可只包括桶标识符,在该情况下,监控设备108可不执行 任何桶修改,而是可使用所接收的桶标识符用于确定后续将哪个桶内容传送给 同步服务器。对于执行后续连接的监控设备,该响应可包括桶标识符以及时间 戳和/或版本标识符。在这种情况下,桶标识符可如在前一情况下被使用,且所 接收的时间戳和/或版本标识符可与监控设备108处的相关桶相关联。对于接入 设备,响应可包括桶标识符、桶内容、时间戳和/或版本标识符。在该情况下, 接入设备110可存储在接入设备处的已识别的相关桶的桶内容且将时间戳和/或 版本标识符分配给该桶内容。
一旦接收到来自同步服务器114的响应并将该响应并入到客户端设备104 的桶结构中,处理可继续至操作1220,在操作1220中,客户端设备104继续其 初始化过程。
图19C为根据一实施方式的同步服务器对关于与客户端设备相关的桶的请 求进行响应的过程1230的流程图。在操作1232中,同步服务器114从客户端 设备104接收用于相关桶的请求。在操作1234中,同步服务器114确定设备的 类型(例如,监控设备108、接入设备110等)以及设备的操作历史(例如,初 始连接、重新连接等)。为了确定设备的类型,同步服务器114可参照客户端设 备104连接至同步服务器114所用的连接端口、设备标识符、或者其他合适的 信息。为了确定设备的操作历史,同步服务器114可例如保持与客户端设备的 连接的记录。在操作1236中,基于客户端设备104的类型和/或操作历史,同步 服务器确定用于客户端设备104的相关桶标识符和相关的信息(例如,桶内容、 时间戳、版本标识符等)。在一个特定的实施方式中,同步服务器114可将所接 收的设备标识符与设备标识符/桶图178C比较,以确定用于该客户端设备的相 关桶。在操作1238中,同步服务器114将相关桶标识符以及在合适的情况下相 关联的信息(例如,桶内容、时间戳、版本标识符等)传送给客户端设备104。 在一些实施方式中,关于同步服务器114描述的一个或多个操作可通过在同步 服务器114内的合适的软件或硬件模块执行,例如相关桶标识符模块166。
应理解到,在图19A至图19C中示出的具体操作提供了根据多个实施方式 的用于请求桶的特定过程。根据可替选的实施方式也可执行其他序列的操作。 例如,本发明的可替选的实施方式可以以不同的次序执行上文概述的操作。此 外,在图19A至图19C中示出的各个操作可包括多个子操作,该子操作可以适 合于各个操作的多个顺序执行。另外,根据特定的应用,可增加额外的操作或 者可去除现有的操作。本领域普通技术人员将意识且理解到许多变型、修改和 变更。
图20A示出根据一实施方式的用于发送例如在操作322中描述的桶内容的 过程的通信序列1300。为了便于理解,过程1300结合图1至图8进行描述,然 而应理解到,过程1300的实施方式不限于结合图1至图8所描述的示例性系统 和设备。
如先前结合图10所述,监控设备可将相关桶的内容传送给同步服务器。为 了促进该过程,在操作1302中,监控设备108可将相关桶的内容传送给同步服 务器,且在操作1304中接收来自同步服务器114的响应。在初始连接期间,监 控设备108可传送如结合图20B和图20C描述的全部相关桶的内容。在后续连 接期间,如结合图20D和图20E所述,监控设备108可只传送比在同步服务器 处的对应桶更新的相关桶的内容。
图20B为根据一实施方式的在初始连接期间监控设备将相关桶内容发送至 同步服务器的过程1310的流程图。在操作1312中,监控设备108基于先前从 同步服务器接收的相关桶标识符而识别它的相关桶的内容。在操作1314中,监 控设备108将全部相关桶的内容(以及桶标识符)发送给同步服务器。在操作 1316中,监控设备108确定是否从同步服务器114接收到响应。如果没有接收 到响应,则处理可返回至操作1314,在操作1314中,监控设备108重新发送相 关桶的内容。否则,处理可继续至操作1318。因为在该情况下,该响应应当包 括用于全部相同桶的诸如时间戳、版本标识符等的信息,在操作1318中,监控 设备108将所接收的信息与各个相同桶相关联。
图20C为根据一实施方式的同步服务器在初始连接期间响应于接收桶内容 而将响应发送给监控设备的过程1320的流程图。在操作1322中,同步服务器 114从监控设备108接收全部相关桶的内容。在操作1324中,同步服务器114 生成用于各个相关桶的时间戳(使用例如时间戳生成器172)和/或版本标识符 (使用例如版本生成器170)。在操作1326中,同步服务器114将所生成的时间 戳和/或版本标识符分配至各个相关桶。在操作1328中,同步服务器114将用于 各个相关桶的桶内容、时间戳和/或版本标识符存储在存储元件118处。在操作 1330中,同步服务器114将用于各个相关桶的时间戳和/或版本标识符发送给监 控设备108。
图20D为根据一实施方式的在后续连接期间监控设备将相关桶内容发送给 同步服务器的过程1340的流程图。在操作1342中,监控设备108基于先前从 同步服务器114接收的相关桶标识符而识别它的相关桶的内容。在操作1344中, 监控设备108确定它的桶是否比在同步服务器114(即,在存储元件118处)处 的对应桶更新。在一个特定的实施方式中,这可通过监控设备在离线时(即, 未连接至远程服务器102)追踪其桶变化而完成。一旦监控设备重新连接,其将 考虑在离线时变化的任何桶比在同步服务器处的对应桶‘更新’。如果确定监控 设备108处的桶并没有比在同步服务器114处的那些桶更新,则处理可持续至操作1346,在操作1346中,监控设备108继续它的初始化过程。否则,处理可 继续至操作1348,在操作1348中,监控设备108将更新的桶的桶内容(和桶标 识符)发送给同步服务器。在操作1350中,监控设备108确定它是否从同步服 务器114接收到响应。如果未接收到响应,则处理可返回至操作1348,在操作 1348处,监控设备108重新发送桶内容。否则,处理可继续至操作1352。由于 在该情况下,响应应该包括仅仅用于在监控设备108处的比在同步服务器114 处更新的相关桶的诸如时间戳、版本标识符等的信息,故在操作1352中,监控设备108使所接收的信息与在监控设备108处的更新的相关桶相关联。
图20E为根据一实施方式的同步服务器响应于在后续连接期间接收桶内容 而将响应发送给监控设备的过程1360的流程图。在操作1362中,同步服务器 114接收在监控设备108处的比在同步服务器114处的桶更新的相关桶的内容。 在操作1364中,同步服务器114生成用于这些相关桶中的各个相关桶的时间戳 (使用例如时间戳生成器172)和/或版本标识符(使用例如版本生成器170)。 在操作1366中,同步服务器114将所生成的时间戳和/或版本标识符分配给在监 控设备108处的较新的这些相关桶中的各个相关桶。在操作1368中,同步服务 器114将用于这些相关桶中的各个相关桶的桶内容、时间戳和/或版本标识符存 储在存储元件118处。在操作1370中,同步服务器114将用于这些相关桶中的 各个相关桶的时间戳和/或版本标识符发送给监控设备108。
应理解到,在图20A至图20E中示出的具体操作提供了根据多个实施方式 的用于将桶内容从监控设备传送给同步服务器的特定过程。根据可替选的实施 方式也可执行其他序列的操作。例如,本发明的可替选的实施方式可以以不同 的次序执行上文概述的操作。此外,在图20A至图20E中示出的各个操作可包 括多个子操作,该子操作可以适合于各个操作的多个顺序执行。另外,根据特 定的应用,可增加额外的操作或者可去除现有的操作。本领域普通技术人员将 意识且理解到许多变型、修改和变更。
图21A示出根据一实施方式的用于订阅例如在操作326和操作418中描述 的相关桶的过程的通信序列1400。为了便于理解,过程1400结合图1至图8进 行描述,然而应理解到,过程1400的实施方式不限于结合图1至图8所描述的 示例性系统和设备。在操作1402中,客户端设备104传送订阅全部相关桶的请 求。在操作1404中,同步服务器114提供对该订阅请求的响应。
图21B为根据一实施方式的客户端设备订阅相关桶的过程1410的流程图。 在操作1412中,客户端设备104识别与其相关的桶。在操作1414中(其可并 入到使用会话标识符的实施中),客户端设备104(使用例如会话ID生成器模块 124)生成会话标识符。在操作1416中(其可被并入到使用例如基于TCP的通 信的实施中),客户端设备104打开新的通信插槽。在操作1418中,客户端设 备104将用以订阅相关桶的请求通过新的通信插槽传送给同步服务器114。所述 请求可包括多个桶相关的信息,例如相关桶的桶标识符、以及在监控设备108 处的相关桶的时间戳和/或版本标识符。
图21C为根据第一实施方式的同步服务器接收订阅请求的过程1420的流程 图。在操作1422中,同步服务器114从客户端设备104接收用以订阅相关桶的 请求。在操作1424中,同步服务器114使在存储元件118处的相关桶(例如使 用在该请求中包括的桶标识符识别)与提出该请求的客户端设备(例如使用设 备标识符识别)相关联。通过做出这种关联,当在存储元件118处的相关桶发 生变化时,这些变化可被传达到合适的客户端设备。
在操作1426中(其可被并入到使用会话标识符的实施中),同步服务器114 使所接收的会话标识符与相关桶相关联。通过做出这种关联,如果对于相关桶 的任一个桶的后续变化被客户端设备请求且与该相关桶相关联的会话标识符与 包括在变化请求内的会话标识符相同,则同步服务器可通过抑制它本来进行响 应时会利用的信息中的一些信息而进行响应(例如,仅仅提供在存储元件118 处更新的桶的新的时间戳和/或版本,而不是全部同内容)。会话标识符的使用在 订阅请求未被毁除的实施方式中可以是特别有利的,这是因为会话标识符的使 用可抑制来自同步服务器的不必要的响应。
应认识到,在一些实施方式中,会话标识符可用设备标识符替换。例如, 在操作1426中,同步服务器114可使所接收的设备标识符(例如,在分配的凭 证中接收到的)与订阅请求相关联,而不使会话标识符与订阅请求关联。类似 地,这种技术允许同步服务器114后续地抑制对来自客户端设备104的改变请 求的响应。尽管设备标识符的使用可在客户端设备104具有其唯一的设备标识 符且理所当然地将其唯一的设备标识符发送给远程服务器102的实施方式中是 特别有利的(例如监控设备108和分配的凭证),但是会话标识符的使用可在客 户端设备104没有理所当然地将唯一的设备标识符发送给远程服务器102的实施方式中是特别有利的(例如,接入设备110)。
在操作1428中(在使用确认通知的实施方式中),同步服务器114将订阅 请求已经被成功接收且处理的确认通知传送给客户端设备104。在操作1430中, 同步服务器104等待对于任何订阅的桶的变化。
图21D为根据第二实施方式的同步服务器接收订阅请求的过程1440的流程 图。操作1442至操作1446与操作1422至操作1426类似,因此省略进一步说 明。然而,在操作1448中,同步服务器114确定该请求是否包括时间戳和/或版 本信息。如果不包括,则处理继续至操作1450,在操作1450中,同步服务器 114将桶内容、时间戳和/或版本标识符传送给客户端设备104。由于例如操作 1324或者例如操作1364,时间戳和/或版本标识符可被先前生成。然后,处理可 继续至操作1454,在操作1454中,同步服务器等待对于所订阅的桶中的任一个 的变化。然而,如果在操作1448中,确定该请求包括时间戳和/或版本信息,则 处理继续至操作1452,在操作1452中,同步服务器114确定所接收的时间戳和 /或版本标识符是否与在同步服务器114处存储的用于相关桶的时间戳和/或版本 标识符相匹配。如果不匹配,则处理继续至操作1450。否则,处理继续至操作 1454。以这种方式,响应于接收订阅请求,同步服务器114可确保在客户端设 备104处的桶的状态和在同步服务器114处的桶的状态是相同的。
应理解到,在图21A至图21D中示出的具体操作提供了根据多个实施方式 的用于订阅桶的特定过程。根据可替选的实施方式也可执行其他序列的操作。 例如,本发明的可替选的实施方式可以以不同的次序执行上文概述的操作。此 外,在图21A至图21D中示出的各个操作可包括多个子操作,该子操作可以适 合于各个操作的多个顺序执行。另外,根据特定的应用,可增加额外的操作或 者可去除现有的操作。本领域普通技术人员将意识且理解到许多变型、修改和 变更。
图22A为根据一实施方式的用于操作客户端设备以使在客户端设备处的桶 的变化与在同步服务器处的对应桶同步的过程1500的流程图。在一些实施方式 中,客户端设备104为监控设备108,监控设备108如结合图12所描述的传送 所期望的桶更新。在其他实施方式中,客户端设备104为接入设备,接入设备 如结合图13所描述的传送所期望的桶更新。为了便于理解,过程1500结合图1 至图8进行描述,然而应理解到,过程1500的实施方式不限于结合图1至图8 所描述的示例性系统和设备。
在操作1502中,客户端设备生成对于桶的所期望的更新。例如,用户可输 入对于桶的所期望的变化(例如对于温度设定点的所期望的变化)。又例如,在 客户端设备处执行的算法可请求对于桶的所期望的变化。所期望的更新通常是 在客户端设备处的桶的内容的所期望的变化,因此桶的内容从一个状态(例如, 桶的字段-值对中的一个值)变化到另一状态(例如,字段-值对中的另一不同的 值)。
在操作1504中,客户端设备毁除其待决的订阅请求。作为其中客户端设备 订阅相关的桶(例如,操作326)的初始化过程的结果,用于与客户端设备相关 的桶的订阅请求将是待决的。因此,客户端设备可使用先前所讨论的技术毁除 该待决的订阅请求。在其他实施方式中,客户端设备可使订阅请求待决。
在操作1506中,客户端设备发送所期望的更新给(分配的)同步服务器。 该所期望的更新可包括新的桶内容和识别与所述新的内容相关联的桶的桶标识 符。在一些情况中,客户端设备可包括其他信息(例如时间戳和/或版本标识符) 以及所期望的更新。在HTTP实施中,所期望的更新可以为“HTTP PUT”命令 的形式。
在操作1508中,客户端设备确定是否接收到对于所期望的更新的响应。如 果未接收到响应,则这可表示在客户端设备和同步服务器之间的通信的暂时故 障,从而处理可继续至操作1510。
在操作1510,客户端设备执行错误处理。错误处理可包括一定的次数地尝 试重新发送所期望的更新。如果仍未接收到响应,则这可表示在客户端设备和 同步服务器之间的通信的永久故障,在该情况下,客户端设备可尝试重新连接 注册服务器以重新初始化。如果连接注册服务器的尝试也失败,则客户端设备 可开始增加(线性地、以指数方式等)重新连接尝试之间的时间、仅仅当电源 可用时进行重新连接尝试等。在其他实施方式中,客户端设备可尝试重新连接 注册服务器,而不尝试重新发送所期望的更新。
另一方面,如果确定从同步服务器接收到响应,则处理继续至操作1512, 在操作1512中,客户端设备将其存储的桶与在同步服务器处的桶协调一致。客 户端设备可基于从同步服务器接收到的响应而执行这种协调,且在一些实施方 式中,可使用协调模块124以执行这种操作。作为这种协调操作的结果,在客 户端设备处的订阅桶的状态应与在同步服务器处的对应桶的状态相同。结合图 22B描述了用于协调桶的一个具体的技术。
在订阅请求被毁除的实施方式中,处理然后可继续至操作1514,在操作1514 中,客户端设备重新订阅与它相关的桶。这可例如与操作326类似地完成。在 订阅请求未被毁除的实施方式中,可避免重新订阅操作。
然后,处理可继续至操作1516,在操作1516中,客户端设备等待对于相关 (即,订阅的)桶的变化。这种变化可在客户端设备处或者在系统100的其他 实体(例如同步服务器、其他客户端设备等)处被引发。
图22B为用于执行参照图22A所描述的操作1512的过程的流程图。即,图 22B描述了用于使在客户端设备处存储的订阅的桶与在同步服务器处的对应桶 相协调的特定实施方式。
在操作1512A中,客户端设备确定它是否从同步服务器接收到新的桶时间 戳和/或版本。如果没有接收到,则这可表示在客户端设备和同步服务器之间的 通信的暂时故障,在该情况下处理可继续至操作1512B,在操作1512B中,客 户端设备执行错误处理。在操作1512B中执行错误处理与参照操作1510描述的 执行错误处理类似。
另一方面,如果确定从同步服务器接收到新的桶时间戳和/或版本标识符, 则处理可继续至操作1512C,在操作1512C中,客户端设备用所接收的那些时 间戳和/或版本标识符重写它现有的时间戳和/或版本标识符。例如,如果客户端 设备传送对于桶A的所期望的更新,作为响应,客户端可接收用于桶A的新的 时间戳和/或版本标识符。客户端设备然后用接收的那些时间戳和/或版本标识符 替换它现有的用于桶A的时间戳和/或版本标识符。
然后,处理继续至操作1512D,在操作1512D中,客户端设备确定它是否 从同步服务器接收到新的桶内容。如果它没有接收到,则这表示所期望的更新 被接受,在该情况下,客户端设备可继续重新订阅相关的桶或者等待对于该相 关桶的进一步变化(例如,操作1516)。
然而,如果客户端设备确定它从同步服务器接收到新的桶内容,则这可表 示更新被拒绝、在同步服务器处的包括客户端设备所不期望的值的桶接受该更 新、或者该更新被接受且即使桶内容是客户端设备所期望的、但同步服务器仍 将这些桶内容传送给客户端设备。在任何情况下,处理继续至操作1512E,在操 作1512E中,客户端设备用从同步服务器接收的那些桶内容重写其桶的现有的 内容。在一些实施方式中,代替重写它的桶的现有的内容,客户端设备可使所 接收的内容与在其桶内已存储的那些内容合并。
应理解到,在图22A和图22B中示出的具体操作提供了根据一实施方式的 用于操作客户端设备以使在客户端设备处的桶的变化与在同步服务器处的对应 桶的变化同步的特定过程。根据可替选的实施方式也可执行其他序列的操作。 例如,本发明的可替选的实施方式可以以不同的次序执行上文概述的操作。此 外,在图22A和图22B中示出的各个操作可包括多个子操作,该子操作可以以 适合于各个操作的多个顺序执行。另外,根据特定的应用,可增加额外的操作 或者可去除现有的操作。本领域普通技术人员将意识且理解到许多变型、修改 和变更。
图23A为根据一实施方式的用于操作同步服务器以使客户端设备所请求的 桶的变化与在同步服务器处的对应桶以及与在其他客户端设备处的对应桶同步 的过程1600的流程图。为了便于理解,过程1600结合图1至图8进行描述, 然而应理解到,过程1600的实施方式不限于结合图1至图8所描述的示例性系 统和设备。
在操作1602中,同步服务器从客户端设备接收对于桶的所期望的更新。所 期望的桶更新可从监控设备108接收(如参照图12所述)、从接入设备110接 收(如参照图13所述)、或者通过同步服务器生成(如参照图14所述)。
在接收所期望的更新后,处理继续至操作1604,在操作1604中,同步服务 器使所期望的桶更新与在存储元件118处存储的对应桶相协调一致。通过使所 期望的更新与在存储元件118处的对应桶相协调一致,同步服务器114可接受 所期望的更新或拒绝所期望的更新。参照图23B描述了用于协调桶的一个具体 技术。这种处理可例如通过协调模块174来执行。
一旦所期望的更新与在同步服务器处的对应桶协调一致,则处理继续至操 作1606,在操作1606中,同步服务器发送用于使客户端设备与同步服务器协调 一致的信息。这可包括确认接受所期望的更新的信息或者表示拒绝所期望的更 新的信息。参照图23C描述了用于发送使使客户端设备与同步服务器协调一致 的信息的一个具体技术。这种处理可例如通过协调模块174来执行。
在操作1608中,同步服务器确定是否有任何其他的客户端设备订阅该桶。 在确定是否有任何其他的客户端设备订阅该桶中,同步服务器可确定是否存在 任何待决的用于该桶的订阅请求。如果存在,则同步服务器可识别发出该待决 的订阅请求的客户端设备。
如果确定没有其他设备订阅该桶,则处理可继续至操作1614,在操作1614 中,同步服务器等待对于任何订阅桶的变化。这可包括在同步服务器处作出的 变化、从客户端设备传送的变化请求等。
另一方面,如果确定至少一个其他客户端设备订阅该桶,则处理继续至操 作1610。在操作1610中,同步服务器确定在同步服务器处的桶的结构是否由于 协调操作1604而变化。通过改变桶的结构,内容、时间戳和/或版本标识符中的 一个或多个可被变更。
如果确定桶的结构未变化,则这可表示同步服务器拒绝所期望的更新,从 而不需要将变化传送给其他订阅的客户端设备。因此,处理可继续至操作1614。 在另一方面,如果确定桶的结构确实变化,则这可表示同步服务器至少部分地 接受所期望的更新。因此,在同步服务器处的桶的新的状态应被传送给其他订 阅的设备,使得全部订阅的设备具有相同状态的对应桶。因而,处理可继续至 操作1612,在操作1612中,同步服务器发送用于使其他设备的桶(即,在订阅 的客户端设备处的对应桶)与更新的同步服务器的桶协调一致的信息。在一个 特定的实施方式中,操作1612可包括多个与在图23C中所示的操作类似且结合 操作1606进行讨论的子操作。
图23B为用于执行结合图23A描述的操作1604的过程的流程图。即,图 23B描述了用于使从客户端设备接收的所期望的桶更新与在同步服务器处的一 个或多个对应桶协调一致的特定实施方式.
在操作1604A中,同步服务器将新的时间戳和版本标识符分配给所接收的 桶。这可例如通过首先使用时间戳生成器172以生成指示接收更新请求的时间 的时间戳、以及使用版本生成器170以生成新的唯一的版本标识符来完成。新 生成的时间戳和版本标识符可分配至所接收的桶以供后续使用。
一旦新的时间戳和版本标识符已经被分配,则处理继续至操作1604B。在操 作1604B中,同步服务器确定所请求的更新是否比在同步服务器处的与所请求 的更新对应的桶新。例如,同步服务器可将新分配的时间戳与在同步服务器处 的对应桶的存储的时间戳相比较。如果新分配的时间戳比对应桶的存储的时间 戳更新(在大多数情况下应该是),则处理继续至操作1604C。
在操作1604C中,同步服务器确定在同步服务器处的对应桶是否与客户端 设备所期望的对应桶相同(即,具有相同状态)。即,因为所期望的更新是针对 在客户端设备处的桶的状态的所期望的变化,因此客户端设备期望在同步服务 器处的对应桶的内容与在客户端设备处的对应桶的内容相同。在一个实施方式 中,为了作出这种判断,同步服务器可将从客户端设备接收的版本标识符与在 同步服务器处存储的用于对应桶的版本标识符比较。如果它们是相同的,则同 步服务器确定在同步服务器处的桶与客户端所期望的桶相同。在这种情况下, 处理可继续至操作1604D。
在操作1604D中,同步服务器使在所期望的更新中的桶的内容与在同步服 务器处的对应桶的内容合并。以这样的方式,在同步服务器处的桶的内容与在 客户端设备处的对应桶的内容相同。应意识到,在一些实施方式中,同步服务 器可以用在所期望的更新中的桶的内容重写在同步服务器处的对应桶的全部内 容,而不进行合并。
返回操作1604C,当同步服务器确定在同步服务器处的对应桶与客户端设备 所期望的桶不相同时(例如,桶的版本标识符是不同的),则同步服务器可决定 是否(虽然)接受所期望的更新或者拒绝该更新。在许多实施方式中,同步服 务器可被配置成默认执行其中一个,非此即彼。例如,处理可从操作1604E继 续到操作1604D或操作1604F。然而,在一些实施方式中,客户端设备可指示 同步服务器在这种情形下是否应接受更新。为此,客户端设备可将开放式并发 标志以及更新请求传送给同步服务器。在操作1604E,如果该开放式并发标志被 置位,或者如果客户端设备指示如果在同步服务器处的对应桶与客户端设备所期望的桶不相同则它不想要更新被接受时,则处理可继续至操作1604F,在操作 1604F中,同步服务器拒绝使所期望的更新与它的对应桶合并或者拒绝接受所期 望的更新。相反,在操作1604E,如果开放式并发标志未被置位,或者如果客户 端设备指示即使在同步服务器处的对应桶与客户端设备所期望的桶不相同则它 确实想要更新被接受时,则处理可继续至操作1604D。在该特定的示例中,同 步服务器的默认操作是合并所期望的更新,即使在同步服务器处的对应桶与客 户端设备所期望的桶不相同。开放式并发标志从而操作以越权于(override)该 默认可操作性。
返回操作1604B,在一些情况下,同步服务器可确定所请求的更新没有比在 同步服务器处的与所请求的更新对应的桶新。例如,如果在操作1604B之前且 在操作1604A后,另一客户端设备请求变化且被分配时间戳(该时间戳比在操 作1604A发出的时间戳新或者与在操作1604A发出的时间戳一样新),并且对 于该另一客户端设备的所请求的变化被接受(使得用于该另一客户端设备的时 间戳被存储在同步服务器处),则这可发生。因此,在操作1604A中发出的时间 戳不比在同步服务器处存储的时间戳新,并且在该情况下处理可继续至操作 1604G。
在操作1604G中,同步服务器确定所请求的更新是否比在同步服务器处的 与所请求的更新对应的桶旧。再次,这可通过比较时间戳来完成。如果所请求 的更新比在同步服务器处的与所请求的更新对应的桶旧,则这可表示同步服务 器具有比在请求更新的客户端设备处的桶更新的桶。在该特定的实施方式中, 在这种情况下,处理继续至操作1604F,在操作1604F中,所请求的更新被拒绝。
另一方面,在操作1604G中,同步服务器可确定所请求的更新不比在同步 服务器处的与所请求的更新对应的桶旧。在该情况下,所请求的更新与在同步 服务器处的桶具有‘相同的年龄’。例如,桶可具有相同的时间戳。在这样的情 况中,处理可继续至操作1604H。
在操作1604H中,同步服务器随机地使所期望的更新与在同步服务器处的 对应桶合并。这可以以多个不同的方式实现。例如,同步服务器可注意在请求 更新的客户端设备处的桶的版本标识符(例如,该版本标识符可作为该更新的 一部分被发送)以及在同步服务器处的对应桶的版本标识符。由于对于给定桶 的版本标识符始终是唯一的,故版本号将是不同的。然后,同步服务器可通过 比较版本标识符而任意地选择合并或不合并。例如,只有当客户端设备的桶的 版本标识符的数值高于在同步服务器处对应桶的版本标识符的数值时,同步服 务器才可选择使所请求的更新与在同步服务器处的对应桶合并。又例如,只有 当客户端设备的桶的版本标识符的数值低于在同步服务器处对应桶的版本标识 符的数值时,同步服务器才可选择使所请求的更新与在同步服务器处的对应桶 合并。应意识到,尽管同步服务器使所期望的更新与对应桶“随机”合并,在 许多实施方式中,相同的合并算法可被全部的同步服务器114A至114M使用。 以这样的方式,系统100可有利地实现最终的一致性。
图23C为用于执行结合图23A所描述的操作1606的过程的流程图。即,图 23C描述了用于发送信息以使客户端设备与同步服务器协调的特定实施方式。
在操作1606A中,同步服务器确定是否已经接受从客户端设备传送的所期 望的桶更新。如果所期望的桶更新未被接受,例如同步服务器已经决定拒绝使 所期望的更新与在同步服务器处的对应桶合并(例如在操作1604F中),则这可 表示在同步服务器处的桶的状态与客户端设备所期望的桶的状态不同。因此, 处理可继续至操作1606B,在操作1606B中,同步服务器将其现有的桶内容、 时间戳和/或版本标识符(即,在同步服务器处的与在更新请求中的桶对应的桶 的桶内容、时间戳和/或版本标识符)传送给客户端设备。否则,处理可继续至 操作1606C。
在操作1606C中,同步服务器确定它的桶是否与客户端设备所期望的桶相 同。为了作出这种确定,同步服务器可将在请求中包括的版本标识符与在同步 服务器处的对应桶的版本标识符相比较。如果它们相同,则同步服务器可确定 它的桶与客户端设备所期望的桶相同。否则,同步服务器可确定它的桶与客户 端设备所期望的桶不相同。
如果同步服务器确定它的桶与客户端设备所期望的桶不相同,则处理可继 续至操作1606D,在操作1606D中,同步服务器将所合并的桶内容和新的时间 戳和/或版本标识符(例如,在操作1604A中生成的那些时间戳和/或版本标识符) 传送给客户端设备。这可用于即使同步服务器的桶不是客户端设备所期望的桶、 但所期望的更新仍被同步服务器接受的情形。在这种情况下,为了确保客户端 设备的桶与同步服务器的对应桶处于相同状态,全部的桶内容可被传送给客户 端设备。
另一方面,如果同步服务器确定它的桶与客户端设备所期望的桶相同,则 处理可继续至操作1606E,在操作1606E中,同步服务器仅仅将新的时间戳和 版本标识符(例如,在操作1604A中生成的那些时间戳和版本标识符)传送给 客户端设备。在这种情况下,所合并的桶内容不需要被传送给客户端设备,因 为该内容已经是相同的。当然,在一些实施方式中,同步服务器还仍可将合并 的桶内容发送至客户端设备。
应理解到,在图23A至图23C中示出的具体操作提供了根据一实施方式的 用于操作同步服务器以使客户端设备所请求的桶的变化与在同步服务器处的对 应桶以及与在其他客户端设备处的对应桶同步的特定过程。根据可替选的实施 方式也可执行其他序列的操作。例如,本发明的可替选的实施方式可以以不同 的次序执行上文概述的操作。此外,在图23A至图23C中示出的各个操作可包 括多个子操作,该子操作可以以适合于各个操作的多个顺序执行。另外,根据 特定的应用,可增加额外的操作或者可去除现有的操作。本领域普通技术人员 将意识且理解到许多变型、修改和变更。
图24A至图26C示出了响应于客户端设备将所期望的更新传送给远程服务 器,使在客户端设备处和远程服务器处的对应桶的状态同步的多个示例。具体 地,图24A和图24B描述了在客户端设备104处具有比在远程服务器102处的 桶1702旧的桶1700的情形下,客户端设备104尝试改变它的桶,但是由于客 户端设备104未意识到在远程服务器102处的更新的桶,故该变化被远程服务 器102拒绝。具体地,如在图24A中所示,客户端设备104存储具有内容A和 内容B、版本vl和时间戳tl的桶B1。客户端设备104将A改变成A'。所请求 的变化1704被发送至远程服务器102且包括桶标识符B1、版本标识符vl以及 所期望的变化A'。当接收时,远程服务器102生成(尽管可永远不能分配)用 于B1的新的时间戳t3和版本v3。如在图24B所示,远程服务器的预先存在的 桶B1具有数据A和数据B'、版本v2和时间戳t2,其中,t2比t3新。由于t2 比t3新,故远程服务器102具有比客户端设备104所发送的桶新的桶B l。在该 情形下,远程服务器102拒绝所提出的变化,将定义其自身桶的状态(B1、A 和B'、v2、t2)的桶1706发送至客户端设备104、并且丢弃t3和v3。客户端设 备104用从远程服务器102处接收的桶替换它的桶B1,使得它的B1从桶1708 状态变化至桶1710。
图25A至图25D描述了客户端设备104发送比在远程服务器102处存储的 桶新的桶(即,由客户端设备104接收的分配给所提出的变化的时间戳比在远 程服务器102存储的对应桶的时间戳新)且在远程服务器102处存储的桶可以 是客户端设备104所期望的桶或者与客户端设备104所期望的桶不同的情形。
图25A和图25B描述了远程服务器的桶是客户端设备104所期望的桶的情 形。在该情形下,当客户端设备104尝试改变它的桶时,远程服务器102将该 变化与它现有的桶合并并且将成功合并的确认通知给客户端设备104。具体地, 如在图25A中所示,客户端设备104存储具有桶标识符B1、内容A和内容B、 版本v1和时间戳t1的桶1712。客户端设备104将A改变为A'。所请求的变化 在桶1714中被发送给远程服务器102且包括B1、v1和A'。当接收时,远程服 务器102生成用于B1的新的时间戳t2和版本v2。如在图25B中所示,远程服 务器的具有桶标识符B1的预先存在的桶1716与在客户端设备104处的桶相同。 由于远程服务器的桶B1的版本v1与客户端设备的桶B1的版本v1相同,故远 程服务器的桶B1是客户端设备104所期望的。并且,由于时间戳t2比t1新, 故客户端设备的请求的变化比远程服务器的存储的桶新。在该情况下,远程服 务器102通过将A'合并到B1中、将新的时间戳t2和版本v2分配给B1、以及 存储新的桶1718而接受所提出的变化。然后,对于桶1720,远程服务器102只 将标识符B1、v2和t2发送给客户端设备104。客户端设备104用A'替换A、并 且用远程服务器102发送的版本/时间戳(即v2/t2)替换它的旧的版本/时间戳 v1/t1,使得它的桶B1从桶1722状态变化到桶1724。
图25A和图25C描述了远程服务器的桶不同于客户端设备104所期望的桶 的情形。在该情况下,当客户端设备104尝试变化其桶时,远程服务器102使 该变化与它现有的桶合并,并且除了将成功合并的确认通知发送给客户端设备 104外,还将所合并的桶的内容发送给客户端设备104,因为远程服务器的桶(以 及可能的所得到的合并的桶)的内容不同于客户端设备104所期望的桶。具体 地,如在图25A中所示,客户端设备104存储具有桶标识符B1、内容A和内容 B、版本v1和时间戳t1的桶1712。客户端设备104将A改变为A'。所请求的变化被发送给远程服务器102且包括B1、v1和A'。当接收时,远程服务器102 生成用于B1的新的时间戳t3和版本v3。如在图25C中所示,远程服务器的具 有桶标识符B1的预先存在的桶1726与在客户端设备的桶不同,且具有内容A 和内容B'、时间戳t2和版本v2。由于v2与v1不同,故远程服务器的B1不同 于客户端设备的B1。此外,由于时间戳t3比t2新,故客户端设备的请求的变 化比远程服务器的存储的桶新。然而,在该情形下,远程服务器102通过将A'合并到B1、将新的时间戳t3和版本v3分配给B1、以及存储新的桶1728而再 次接受所提出的变化。与前一示例相反,代替只发送桶标识符、时间戳和版本, 在该情况下,对于桶1730,远程服务器102还将内容A'和内容B'发送给客户端 设备104。客户端设备104用从远程服务器102接收到的内容替换它的桶B1的 全部内容,且也使用所接收的时间戳t3和版本v3,使得它的桶B1从桶1732状 态改变到桶1734状态。
图25A和图25D描述了远程服务器的桶不同于客户端设备104所期望的 桶、但是开放式并发标志(即,越权标志)被置位的情形。通过置位开放式并 发标志,如果远程服务器的桶不具有与客户端设备的桶相同的版本,则远程服 务器102将拒绝接受任何所请求的变化(通过合并、重写或其他)。这是因为在 一些情形中,将所请求的变化与未知的数据合并可生成不期望的或者无法预料 的结果。具体地,如在图25A所示,客户端设备104存储具有桶标识符B1、内 容A和内容B、版本v1和时间戳t1的桶1712。客户端设备104将A改变为A'。所请求的变化被发送给远程服务器102且包括B1、v1和A'。当接收时,远程服 务器102生成用于B1的新的时间戳t3和版本v3。如在图25D中所示,远程服 务器的具有桶标识符B1的预先存在的桶1736与在客户端设备的桶不同,且具 有内容A和内容B'、时间戳t2和版本v2。由于v2与v1不同,故远程服务器的 B1不同于客户端设备的B1。此外,由于时间戳t3比t2新,故客户端设备的请 求的变化比远程服务器的存储桶新。然而,与远程服务器102合并所请求的变 化的前一示例相反,因为开放式并发标志被置位,故远程服务器102此处拒绝 接受所提出的变化。而是,远程服务器102维持其现有的B1版本并且以桶1738 的形式将B1的副本(包括标识符B1、内容A和内容B'、版本v2和时间戳t2) 发送给客户端设备104。客户端设备104然后用从远程服务器102接收的桶内容 替换它的桶B1的全部内容,并且还使用所接收的时间戳t2和版本v2,使得它 的桶B1从桶1740状态变化到桶1742状态。
图26A至图26C描述了客户端设备104在与远程服务器102已经生成对于 桶的变化或者(从另一设备)接收对于桶的变化的时间完全相同的时间时发送 同一桶的情形。因此,在远程服务器102处的桶的时间戳与从客户端设备104 所接收的桶的时间戳是相同的,但是由于随机生成版本故版本是不同的。桶的 内容也可以是不同的。在该情况下,响应于客户端设备的用于改变桶内容的请 求,远程服务器102必须确定是否拒绝该变化请求或者接受该变化请求。在实 施方式中,远程服务器102实施算法,其中,规则是具有最高版本号的桶‘胜 出’。由于随机生成版本号,故也随机确定是否接受内容变化。
图26A和图26B描述了远程服务器的桶的时间戳与客户端设备的请求的变 化的分配的时间戳相同且远程服务器的桶版本高于客户端设备的桶版本使得远 程服务器102‘胜出’的情形。在该情况下,当客户端设备104尝试改变它的桶 时,远程服务器102拒绝该改变而是将它的桶发送给客户端设备104。具体地, 如在图26A中所示,客户端设备104存储具有桶标识符B1、内容A和内容B、 版本v1和时间戳t1的桶1744。客户端设备104将A改变为A'。所请求的变化 1746被发送给远程服务器102且包括B1、v1和A'。当接收时,远程服务器102 生成用于B1的新的时间戳t2和版本v3。如在图26B中所示,远程服务器的具 有桶标识符B1的预先存在的桶1748具有与客户端设备的请求的变化的新分配 的时间戳t2相同的时间戳t2。由于时间戳是相同的,故远程服务器102必须选 择“胜利者”。在该示例中,远程服务器的桶版本v2高于客户端设备的桶版本 v1,从而远程服务器102‘胜出’。因此,远程服务器102拒绝所提出的变化且 发送包括桶标识符B1、内容A和内容B'、版本v2和时间戳t2的桶1750。客户 端设备104然后用从远程服务器102接收的桶内容替换它的桶B1的全部内容,且还使用所接收的时间戳t2和版本v2,使得它的桶B1从桶1752状态变化到桶 1754状态。
图26A和图26C描述了远程服务器的桶的时间戳与客户端设备的请求的变 化的分配的时间戳相同且远程服务器的桶版本低于客户端设备的桶版本使得客 户端设备104‘胜出’的情形。在该情况下,当客户端设备104尝试改变它的桶 时,远程服务器102接受该变化、将该变化合并到它现有的桶中、且将将所得 到的合并桶发送给客户端设备104。具体地,如在图26A中所示,客户端设备 104存储具有桶标识符B1、内容A和内容B、版本v1和时间戳t1的桶1744。 客户端设备104将A改变为A'。所请求的变化被发送给远程服务器102且包括 B1、v1和A'。当接收时,远程服务器102生成用于B1的新的时间戳t2和版本 v3。如在图26C中所示,远程服务器的具有桶标识符B1的预先存在的桶1756 具有与客户端设备的请求的变化的新分配的时间戳t2相同的时间戳t2。由于时 间戳是相同的,故远程服务器102必须选择“胜利者”。在该示例中,远程服务 器的桶版本v2低于客户端设备的桶版本v1,从而客户端设备104‘胜出’。因 此,远程服务器102接受所提出的变化,将该变化合并到B1中使得它的桶B1 从桶1756状态变化到桶1758状态、且将v3分配给B1。然后,远程服务器102 将合并后的桶1760(包括标识符B1、桶内容A和桶内容B'、版本v3和时间戳 t2)回送给客户端设备104。客户端设备104然后用从远程服务器102接收的桶 内容替换它的桶B1的全部内容,且还使用所接收的时间戳t2和版本v3,使得 它的桶B1从桶1762状态变化到桶1764状态。
应意识到,参照图25D所讨论的开放式并发标志的概念也可用于参照图26A 至图26C所讨论的相同时间戳的情形。即,如果开放式并发标志被置位,并非 如结合图25C所讨论的当客户端设备104‘胜出’时合并所请求的变化,由于远 程服务器的桶内容可与客户端设备104所期望的桶内容不同,故远程服务器102 可拒绝执行该合并。在这种情形下,如参照图26B所述,远程服务器102将其 现有的桶返回至客户端设备104。
另外,应理解到在图24A至图26C中示出的具体操作提供了响应于客户端 设备将所期望的更新传送给远程服务器,用于使在客户端设备和远程服务器处 的对应桶的状态同步的特定示例。这些示例仅仅出于说明目的。本领域普通技 术人员将意识和理解到许多变型、修改和替换。
认证用于与远程服务器通信的设备的方法
综述。当与远程服务器102通信时,客户端设备104可使用身份和匹配秘 密来认证自身。这一对,统称为设备凭证,形成了客户端设备和远程服务器之 间的信任关系的基础。从远程服务器的角度来看,拥有有效的设备身份和秘密 的任何设备均是该设备,将会被提供相同的权限。
尽管设备凭证提供一种用于使客户端设备向远程服务器认证其本身的方 式,但在一些实施方式中,设备凭证可以不提供用于使远程服务器向客户端设 备认证其本身的方式。因此,设备凭证可被用在可确认服务的身份的另一协议 (例如,SSL)的环境下。
在任意时间点,客户端设备可拥有高达两组凭证:一组默认凭证,以及可 选的,一组分配的凭证。默认凭证在制造时被提供给设备,且在设备的整个使 用期内属于该设备。例如,图27A为示出将默认凭证传送给客户端设备的框图。 制造商101将默认凭证发送给客户端设备104。作为响应,客户端设备104将 所接收的默认凭证存储在它的存储元件128中。
分配的凭证在远程服务器/客户端设备交互的正常过程期间由远程服务器 102提供给客户端设备。例如,图27B为示出分配的凭证传送给客户端设备的框 图。远程服务器102将分配的凭证发送给客户端设备104。作为响应,客户端设 备104将所接收的分配的凭证存储在它的存储元件128中,导致客户端设备104 具有默认凭证和分配的凭证两者。
默认凭证提供了一种用于使客户端设备断定其是授权实体制造的合法设备 的方式。分配的凭证提供了一种用于使客户端设备断定其已经被服务认为是可 信的且应当在所有交互中被授予完全权限的方式。
一旦客户端设备104拥有一组分配的凭证,则当向远程服务器102认证时, 它仅使用那些分配的凭证。只有当客户端设备104不具有分配的凭证、或者当 使用它的分配的凭证的认证失败时,客户端设备104可求助于它的默认凭证。
设备凭证可被设计成与多种协议兼容。采用用户名和密码且对那些字段设 定可接受的长度限制的任何协议,应允许使用设备凭证用于认证。在许多实施 方式中,设备凭证用于HTTPS协议的环境中。因此,在HTTPS协议的环境中 提供设备凭证的其他说明,但本领域技术人员会意识到设备凭证类似地应用于 其他协议,例如FTP、SMTP、TELNET、SSH、X400、X500、CMIP等。
设备凭证的结构。设备凭证可采取具有可变长度的结构化的ASCII字符串 的形式。在一些实施方式中,注意确保这些字符串相当小且它们的字符集相对 于在其他协议中的内容尽可能的中性。在一些实施方式中,设备凭证的结构化 的性质允许它们传送关于它们如何形成的信息以及证实它们所需要的算法。
在一些实施方式中,设备凭证由句号分开的多个成分字符串组成。各个成分 字符串限于ASCII字符A-Z、a-z、0-9、破折号和下划线。因此,用于作为整体 的凭证字符串的合法字符集是那些字符加句号。落在可允许字符集之外的成分 值(例如二进制散列值)以URL64格式、设计用于URL中的内容的Base64的 变型进行编码。URL-64的使用可是尤其有利的,这是因为其规定了语法上中性 的身份字符串,从而允许设备凭证通过URL或者其他文本语境,而无需大量特 殊转义。然而,应意识到,在其他实施方式中的设备凭证可呈现包括一个或多 个不同字符集(例如,EBCDIC、ISO 8859、ISCII、TSCII、VISCII等)的不同 的形式。
在一个实施方式中,设备凭证的第一成分被称作方案(scheme)。所述方案 为短字符串,其识别凭证的类型以及形成凭证的过程。方案使得远程服务器102 可以立即识别正在呈现的凭证的类型。由于新的认证机制被引入,故方案有助 于区分旧形式的凭证和新形式的凭证。在其他实施方式中,例如当只有单一类 型的认证机制被使用或者当其他机制被实施以将正呈现的凭证的类型通知给远 程服务器102时,该方案成分可被省略。
设备凭证的其他成分的数目和含义通常从一个凭证类型到另一凭证类型变 化,且在包括方案成分的实施方式中,可由该方案来确定。
默认凭证。在制造期间,客户端设备104被提供一组唯一的默认凭证。在 设备与远程服务器102初始交互期间,设备的默认凭证用于认证该设备。它们 也被用于这样的情况:其中,通过终端用户的直接操作或者间接地借助远程服 务器102,设备被“擦除”或者被恢复至出厂默认设置。在物理设备的整个使用 期期间,默认凭证属于该物理设备,且注意确保它们绝不会丢失(例如,在固 件升级期间)。
从主密钥通过计算方法生成默认凭证。在制造过程期间,生产线上的配置 设备从主密钥生成该凭证且将它们注入设备的永久内存中。在一些实施方式中, 这可在客户端设备104被分配序列号的同时发生。在一些实施方式中,默认凭 证具有下列的结构:
<默认-方案>:='d'
<默认-id>:=<默认-方案>+'.'+<序列号>+'.'+<制造-秘钥-id>
<默认-秘密>:=<默认-方案>+'.'+URL64(<默认-MAC>)
在此,<序列号>为客户端设备104的用户可见的序列号,<默认-MAC>为 256位消息认证码(MAC),且<制造-秘钥-id>为识别用于生成MAC的特定主密 钥的字符串。URL64()函数表示URL-64格式的字节序列的编码。
在默认秘密中使用的MAC使用下列算法基于默认身份和主制造密钥生成: <默认-MAC>:=HMAC-SHA256(<制造-秘钥>,ASCII(<默认-id>))
在此,HMAC-SHA256()为基于散列的消息认证代码算法的SHA-256变 型,且<制造-秘钥>为分配给生产该设备的生产线的随机生成的512位序列。 ASCII()函数表示作为以ASCII形式的字节序列的字符串的编码,不包括终 止空字符。
应意识到,实施方式不限于具有该特定结构的默认凭证。例如,该默认方 案可被省略。<默认-id>不需要包括制造-秘钥-id,甚至也不包括序列号,而是可 使用唯一识别客户端设备的其他字符串或数据序列。另外,<默认-秘密>不需 要包括默认方案,且不需要包括URL-64编码的MAC,而是可使用形成仅仅被 客户端设备104和远程服务器102得知的秘密的其他的字符串或者数据序列。
分配的凭证。除了其默认凭证外,客户端设备104可获取被称作其分配的 凭证的第二组凭证。这些凭证由远程服务器102通过安全连接提供给客户端设 备104。一旦客户端设备104拥有一组分配的凭证,则其优先于其默认凭证而使 用分配的凭证,直到当其丢失分配的凭证(例如,在恢复到出厂状态情形下)、 分配的凭证被替换时或者分配的凭证变得无效时。为了限制攻击的机会,远程 服务器102在其正常操作过程期间周期性地将新的凭证分配给客户端设备。
在一些实施方式中,分配的凭证具有以下结构:
<分配-方案>:='a'
<分配-id>:=<分配-方案>+'.'+<序列号>
<分配-秘密>:=<分配-方案>+'.'+URL64(<随机-128>)。
在此,<序列号>为客户端设备104的用户可见的序列号,且<随机-128> 为远程服务器已经分配给设备的随机生成的128位的序列。
然而,应意识到,实施方式不限于具有该特定结构的分配的凭证。例如, 默认方案可被省略。<分配-id>不需要包括序列号,而是可使用唯一地识别客 户端设备的其他字符串或者数据序列。另外,<分配-秘密>不需要包括默认方 案,且不需要包括URL-64编码的随机数,而是可使用形成仅仅被客户端设备 104和远程服务器102得知的秘密的其他的字符串或者数据序列。
凭证的验证。在一些实施方式中,默认凭证和分配的凭证使用共同的方法 进行验证。远程服务器102保持用于各个已知设备的凭证数据库;例如,数据 库可被存储在存储元件118中或者在远离存储元件118的存储元件(未示出) 中。为了防止丢失,远程服务器102使用单向散列函数以散列形式存储凭证的 保密部分,例如SHA-256单向散列函数。在验证时,客户端设备提供的秘密使 用相同的函数被散列,且所得到的值与数据库中存储的对应值进行比较。如果 两个值匹配,则所提供的凭证被认为是可信的。
秘密散列可如下生成:
<散列-秘密>:=SHA256(ASCII(<秘密>))
因为秘密的散列形式是不可逆的,故执行设备认证的前端服务器可本地高 速缓存该散列的凭证以提高性能。例如,在非散列的凭证被存储在存储元件118 或者远离存储元件118的存储元件(未示出)中的情况下,注册服务器112、同 步服务器114和/或日志服务器116可存储散列的凭证。当这发生时,缓存的凭 证可周期性地被重新认证。例如,至少每6小时、每12小时、每18小时、每 24小时、每30小时、每36小时,6小时至36小时的范围内,小于6小时的 时间周期、或者大于36小时的时间周期。通过重新认证缓存的凭证,执行设备 认证的前端服务器证实该散列的凭证仍是准确的。另外,缓存的凭证可以以非 周期性的间隔进行重新认证。例如,响应于认证失败,散列的凭证可被重新认 证。
为了防止信息泄露,在一些实施方式中,当比较秘密散列时,远程服务器 102可使用时间恒定的比较算法。
认证协议。客户端设备104和远程服务器102之间的认证可发生在任意数 目的不同通信协议的环境下,例如FTP、SMTP、TELNET、SSH、X400、X500、 CMIP等。出于说明的目的,下文说明描述了在HTTP交互的环境范围内的设备 认证。
在HTTP环境下,客户端设备104使用HTTP基本访问认证协议(如例如 在RFC-2617中所述)以安排与远程服务器102的认证交互。当形成HTTP授权 头时,设备的身份和秘密被分别用作用户名和密码。
客户端设备104和远程服务器102实现由HTTP协议限定的标准的认证交 换。具体地,在任何时间,服务器可采用要求认证的401(未授权的)响应对设 备的请求作出响应。401响应可包含请求使用基本认证的WWW-认证头。当收 到401响应时,客户端设备104再发出包括包含设备凭证的授权头的该请求。 当接收具有授权头的请求时,远程服务器102对设备凭证进行拆包且如在凭证 的认证部分所描述来认证它们。
因为客户端设备104始终拥有一组凭证(默认的或者分配的),因此在一些 实施方式中,它可通过在请求中包括授权头而预料到需要认证,而无需等待远 程服务器102用401响应进行响应。这可被用于避免设备和远程服务器102之 间的额外的初始往返。
如果设备所提供的凭证是无效的,则远程服务器102将采用401(未授权的) 响应对请求作出回应。该设备通过观察它是否在相关请求中发送授权头来区分 表示认证失败的401,如果其发送了授权头,则在请求中使用的凭证是不合适的。
如果设备正使用其分配的凭证,但还是发生认证失败,则该设备将从其永 久内存中删除该凭证,且使用其默认凭证重复认证。注意到,这很可能导致设 备权限的丢失(参见分配的凭证的安全性暗示部分)。
如果设备正使用其默认凭证但还是发生认证失败,则该设备可等待短时间 段且使用相同的凭证重试该请求。如果失败继续发生,则在一些实施方式中, 设备可在两次重试之间等待逐渐变长的时间段。该时间段可达到最大时间段, 例如每5分钟一次、每10分钟一次、每15分钟一次,在每5分钟一次到每15 分钟一次的范围内、在小于5分钟的时间段中进行一次、或者在大于15分钟的 时间段中进行一次。
在一些实施方式中,客户端设备104和远程服务器102之间的所有认证交 互通过使用例如SSL的安全连接发生。在SSL连接协商期间,客户端设备104 使用例如基于标准证书的SSL服务器认证来认证远程服务器102。客户端设备 104绝不会将包含其凭证的授权头通过不安全连接发送、或者绝不会将包含其凭 证的授权头发送给未被恰当地认证为属于特定实体的服务器。类似地,远程服 务器102可采用永久故障来拒绝用以通过不安全连接来认证客户端设备104的 任何企图。
凭证分配协议。当远程服务器102将新的凭证分配给客户端设备104时, 该凭证可作为正常HTTP交互的一部分被传送给设备。具体地,新凭证可在X-nl- 设置-客户端-凭证报头中被传送,该X-nl-设置-客户端-凭证报头包括在来自远程 服务器102的HTTP响应中。用于这种报头的语法为:
‘X-nl-设置–客户端-凭证’‘:’1*SP<设备-id>1*SP<设备-秘密>
在此,<设备-id>和<设备-秘密>为代表设备的新身份和秘密的字符串,其中, “1*SP”代表一个或多个ASCII间隔字符。在一些实施方式中,身份和秘密的 字符串的内容限于ASCII字符A-Z、a-z、0-9、冒号、破折号、下划线和句号。 在其他实施方式中,身份和/或秘密的字符串可采用包括一个或多个不同字符集 的不同形式,例如EBCDIC、ISO 8859、ISCII、TSCII、VISCII等。
X-nl-设置-客户端-凭证报头可被包括在远程服务器102生成的任何响应中。 一旦被客户端设备104接收,客户端设备104丢弃它拥有的任何现有分配的凭 证且将新的凭证存储在它的永久内存中。从那时起,该设备在任何后续的与远 程服务器102的认证交互中使用该新的凭证。
如所述,在一些实施方式中,客户端设备104仅通过安全连接(例如,SSL) 接受新的分配的凭证,在安全连接中,在连接的另一端的一方被远程服务器102 得知(如通过例如SSL服务器认证所建立)。类似地,远程服务器102可只通过 安全连接将包含新的凭证的X-nl-设置-客户端-凭证报头发送给设备。另外地, 响应于已经利用一组有效的设备凭证进行认证(使用在认证协议中描述的机制) 的请求,远程服务器102将只发送新的凭证。
分配的凭证的管理。当客户端设备104首次连接远程服务器102时,它使 用它的默认凭证以认证自身。在该初始交互期间,该设备被给予一组新的分配 的凭证,在与远程服务器102进一步通信中它必须使用该组新的分配的凭证。 此后,在一些实施方式中,在后续交互期间,远程服务器102将新的凭证分配 给设备。分配的凭证的轮换可周期性地发生,例如每周、每月、每年、在从一 周到一年的范围内的时间段后、在小于一周的时间段、或者在大于一年的时间 段。分配的凭证的轮换也可或者可替选地非周期性地发生。例如,在客户端设 备104连接至远程服务器102一定次数后。
分配的凭证维持有效,直到它们被远程服务器102替换。因为凭证的轮换 通常发生在客户端设备104和远程服务器102正在交互时,故长时间段不能够 与远程服务器102通信的设备并未失去其认证的能力。
在一些实施方式中,远程服务器102可力图根据其自身的日程安排来分配 新的凭证。尤其,外部实体不能够引起远程服务器102生成新的分配的凭证, 除了通过利用一组有效的默认凭证进行认证外。为了限制反复的尝试以使用一 组偷窃的默认凭证来生成新的分配的凭证,远程服务器102可将客户端设备104 使用一组特定的默认凭证认证的速度限制为每小时较少次数(例如,5次、10 次、15次、在从5次到15次的范围内,小于5次、或者大于15次)。
由于通信故障,分配给客户端设备104的凭证可能与在远程服务器102存 储的凭证不同步。具体地,如果传送一组新的凭证给客户端设备104的消息丢 失,则远程服务器102将拥有新的凭证,而客户端设备104将仍采用旧的凭证 进行操作。为了使客户端设备104从该状态中恢复,远程服务器102执行宽限 期,在该宽限期内,远程服务器102允许客户端设备104使用新凭证或者旧凭 证进行认证。宽限期通常在客户端设备104使用旧凭证认证且远程服务器102 确定是时候分配新组的时刻开始,但在其他实施方式,可选择不同起始点。一 旦宽限期开始,任何对旧凭证的使用将引发远程服务器102重新发送新的凭证 给客户端设备104。一旦宽限期结束,远程服务器102丢弃旧的凭证,且使用旧 的凭证进行认证的任何进一步尝试将被拒绝。宽限期的持续时间可为,例如12 小时、24小时、36小时、在12小时至36小时的范围内、小于12小时、或者 大于36小时。在一些实施方式中,即使宽限期结束,客户端设备104仍可以使 用默认凭证认证自身。
默认秘密散列的生成。在远程服务器102内,通过包含用于每个已知客户 端设备104的秘密散列的凭证数据库(例如,在注册服务器112、同步服务器 114、日志服务器116等处提供)来支持设备认证。在新的设备连接远程服务器 102之前,用于新设备的默认秘密散列可被生成且加载到凭证数据库中。秘密散 列生成过程将设备标识符的列表(例如设备序列号)看做是输入。秘密散列生 成过程采用与制造商使用的加密算法相同的加密算法,制造商使用该加密算法 以将默认凭证提供给客户端设备104。例如,远程服务器102可使用制造密钥(例 如被客户端设备104提供的默认凭证所识别的密钥)以及与该制造密钥相关联的该客户端设备的序列号来应用HMA-SHA256算法。
分配的凭证的安全性暗示。应意识到,拥有一组有效的分配的凭证并不一 定暗示客户端设备104在任何情况下是可信的,或者客户端设备104应被授权 访问任何特许的信息或服务。更确切地说,客户端设备104的可信度可通过设 备认证机制的方式来建立,--例如,通过促使所有者输入密码以使客户端设备104 与它们的账户相关联(例如,配对)。一旦已经建立信任,则设备的分配的凭证 用于向远程服务器102证明正在讨论的客户端设备104确实是与其存在信任关 系的设备。
从这可以看出,在用户账户和设备凭证之间的关系可为信任关系。在建立 信任后,总而言之,具有该受信任的设备凭证的任何设备为客户端设备104,不 论他们是否实际上物理上占有该客户端设备104。相反地,如果客户端设备104 丢失其凭证,它可通过与其首次受信任时所使用的方式相同(或者更强的)的 方式被强制重新建立信任关系(即,客户端设备104可需要与用户账户重新配 对)。
默认凭证的安全暗示。客户端设备104的呈现一组有效的默认凭证的能力 向远程服务器102提供以下这样的信任:客户端设备104确实是特定实体制造 的可信的一件硬件。然而,该信任不是绝对的。一个能够合法访问客户端设备 104的怀有恶意的人—即,参与制造过程的人、或者第三方设备安装商/经销商 的雇员,可能提取设备的默认凭证且在后来使用它们以假冒该设备。另外,用 于创建默认凭证的主密钥可易受到直接的工程攻击或者社会工程攻击。
出于这些原因,在一些实施方式中,凭借其默认凭证已经被认证的客户端 设备104,并不被远程服务器102授予重要的权限。远程服务器102授权给这种 客户端设备104的主要权限是获取新的分配的凭证的能力,这是朝向建立信任 的第一步。
默认凭证的相对力度也允许远程服务器102信任它从客户端设备104接收 的某些类型的信息。例如,远程服务器102能够记录和监控来自利用默认凭证 认证的客户端设备104的日志数据,从而允许客户支持人员诊断阻止客户端设 备104变得充分受信任的连接或认证问题。尽管如此,远程服务器102仍必须 采取合理的预防措施防止该权限的滥用,这是因为怀有恶意的人可能从客户端 设备104提取一组默认凭证,且使用它们以使系统充满虚假的日志信息。
当向远程服务器认证时的设备行为
初始联系和正常操作。当新的客户端设备104启动时,在许多实施方式中, 它的第一请求针对注册服务器112。该交互使用设备的默认凭证进行认证,在一 些实施方式中,设备的默认凭证在HTTP授权头中呈现给远程服务器102。
当注册服务器112对该请求作出响应时,它在例如X-nl-设置-客户端-凭证 响应报头中返回用于客户端设备104的初始的一组分配的凭证。当接收该报头 时,客户端设备104提取新的凭证且将它们存储在永久存储器中,例如存储元 件128。
随后,客户端设备104将其在每次请求时的分配的凭证呈现给远程服务器 102。分配的凭证保持有效,直到1)它们被远程服务器轮换出去;2)客户端设备 被重设为出厂默认设置;或者3)强制客户端设备重设其凭证的错误发生。
凭证轮换。基于周期性的(或非周期性的)的基础,远程服务器102将一 组新的分配的凭证传送给客户端设备104,以替换其现有的凭证。在初始联系情 况下,新的凭证可凭借X-nl-设置-客户端-凭证响应报头而被返回。当与远程服 务器102的端点(例如,注册服务器112、同步服务器114或日志服务器116) 中的一个进行任何交互时,凭证轮换可发生。
当客户端设备104接收新的分配的凭证时,其更新其已经在其永久存储器 中存储的分配的凭证的副本。在许多实施方式中,当它一从远程服务器102接 收X-nl-设置-客户端-凭证报头时,这就发生。在至少一个实施方式中,客户端 设备104可使用长轮询,其中,它传送用以订阅全部相关桶的请求(参见,例 如结合图10描述的步骤326)。在这种情况下,一旦接收到长轮询响应的报头, 而不是在响应的主体(如果有的话)出现时,客户端设备104可更新其凭证。
处理认证失败。在一些少见的情形下,客户端设备104可以以远程服务器 102认为是无效的一组分配的凭证而结束。当这发生时,远程服务器102将利用 例如HTTP 401未授权的响应拒绝使用这些凭证的请求。每当客户端设备104从 远程服务器102接收该错误时,它立即丢弃其分配的凭证的本地副本且使用其 默认凭证返回至注册服务器112。对于从客户端设备104到任一远程服务器102 的端点进行的任何请求,该行为可发生。
在一些实施方式中,在认证失败和客户端设备104成功地从注册服务器112 接收新的分配的凭证的时刻之间的时间期间,除了与注册服务器112的通信以 及在一些情况下与日志服务器116的通信外,客户端设备104禁止与远程服务 器102的所有通信。在其他实施方式中,客户端设备104可在丢弃其凭证且返 回至注册服务器112之前,尝试一次或多次重试。
由于全部客户端设备应当制造有有效的默认凭证,故远程服务器102应当 从未将HTTP 401未授权响应返回给使用默认凭证的客户端设备104。然而,在 一些情形下(例如,偷窃的设备、偷窃的默认凭证等),这可发生。如果远程服 务器102拒绝客户端设备104的默认凭证,则客户端设备104可实施回退算法, 在回退算法中,它等待两次重试之间的逐渐增长的时间段,直到它成功。
如果用户引发该设备重设为出厂默认特征,则客户端设备104清除其分配 的凭证且恢复到上述所述的初始联系行为。
当认证客户端设备时的远程服务器的行为
注册服务器认证行为。客户端设备被允许使用默认凭证或者分配的凭证向 注册服务器112认证。当客户端设备104使用默认凭证认证时,远程服务器102 的行为取决于客户端设备104是否先前已经联系过远程服务器102。
初始联系。当注册服务器112接收来自客户端设备104的请求时,如果在 例如存储元件118的分配的凭证198中,不存在用于客户端设备104的分配的 凭证,则远程服务器102考虑该请求为客户端设备104和远程服务器102之间 的首次联系。在该情形下,远程服务器102立即生成一组新的分配的凭证且将 它们返回至客户端设备104。客户端设备104然后被预期使用这些凭证用于与远 程服务器102的进一步交互。
设备返回。在正常情形下,当客户端设备104返回到注册服务器112时, 它使用其分配的凭证进行认证。在该交互期间,设备的分配的凭证可如先前所 述以及在下文中进一步描述的进行周期性轮换。
丢失的凭证。在一些情形下,先前已经被给予分配凭证的客户端设备104 可使用其默认凭证返回至注册服务器112。该情形可在至少两种情况下出现:(1) 客户端设备104第一次联系注册服务器112且出示其默认凭证。注册服务器112 用一组新的分配凭证进行响应,然而,例如由于连接问题,该响应丢失。随后, 客户端设备104再次使用其默认凭证向注册服务器112重试该请求。这是‘初 始联系’场景。(2)客户端设备104使用过期的分配凭证联系远程服务器102。 远程服务器102检测到该过期的凭证且分配一组新的凭证,然而该响应丢失。 随后,客户端设备104离线比分配凭证的宽限期更长的时间段。当恢复连接时,客户端设备104尝试使用远程服务器102采用例如HTTP 401未授权响应来拒绝 的旧凭证来进行连接。当接收到该旧凭证时,客户端设备104丢弃其分配凭证 且使用其默认凭证返回至注册服务器112。这是‘丢失的凭证’场景。
远程服务器102可通过检测在例如存储元件118中的分配凭证的存在而区 分丢失的凭证场景和初始联系场景。当远程服务器102检测到客户端设备104 已经丢失其凭证时,它重设在例如存储元件118中的设备的认证状态,丢弃在 该过程中的任何旧凭证信息,且生成一组新的用于客户端设备104的分配凭证。 同时,远程服务器102取消客户端设备104与其结构的配对(即,取消客户端 设备104与先前已配对的用户账户的配对),通过配对过程强制客户端设备104 证实其授权以访问用户数据。
坏凭证。客户端设备104使用无效的凭证(默认凭证或分配凭证)向注册 服务器112认证的任何尝试可被记入日志(例如,通过日志服务器116)且立即 以例如HTTP 401未授权响应来拒绝。
同步服务器认证行为。在许多实施方式中,在客户端设备104和其分配的 同步服务器114之间的全部交互使用分配凭证。客户端设备104使用默认凭证 向同步服务器114认证的任何尝试可被立即记入日志(例如,使用日志服务器 116)且以例如HTTP 401未授权响应来拒绝。类似地,客户端设备104使用无 效凭证(默认凭证或分配凭证)向同步服务器114认证的任何尝试可被记入日 志且立即以例如HTTP 401未授权响应来拒绝。
在其与同步服务器114交互期间,设备的分配凭证可如先前所述地以及在 下文中进一步描述的进行轮换。
日志服务器认证行为。客户端设备104可使用分配凭证或默认凭证向日志 服务器116认证。在这两种情况下,日志服务器116将接受和存储从客户端设 备104上传的日志文件。在一些实施方式中,为了确保客户端设备能够始终上 传日志,日志服务器116也接受来自利用无效凭证(分配凭证或默认凭证)认 证的客户端设备104的日志文件。
然而,日志服务器116可基于所示出的认证凭证的类型和/或该认证凭证的 有效性来表征任何上传的日志文件。例如,日志服务器116可表征全部上传的 日志文件为未经认证的,除非客户端设备104采用有效的分配凭证认证。又例 如,日志服务器116可表征上传的日志文件为未经认证的,除非客户端设备104 用有效的分配凭证或者有效的默认凭证认证。另外,在一些实施方式中,可存 在除了“未经认证的”和“认证的”之外的另外描述表征。例如,可存在三层 表征,其中,有效的分配凭证与最高级别的认证相关联,有效的默认凭证与中 等级别的认证相关联,以及任何无效的凭证与最低级别的认证相关联。
在一些实施方式中,无论客户端设备104何时将有效的分配凭证出示给日 志服务器116,凭证可如先前描述以及在下文中进一步描述的进行正常轮换。
另外,在一些实施方式中,与注册服务器112不同,当客户端设备104使 用默认凭证向日志服务器116认证时,远程服务器102并不生成用于客户端设 备104的新的分配凭证。这可避免在丢失的凭证场景中的竞争条件,其中,客 户端设备104回到注册服务器112以获取新的凭证,同时将日志上传到日志服 务器116。
凭证轮换。一旦存在用于客户端设备104的分配凭证,则它们可在每次与 远程服务器102联系时进行周期性轮换。当客户端设备104向远程服务器102 端点认证且远程服务器102确定目前的设备凭证已经超出它们的配置的使用期, 则发生轮换。分配凭证的轮换可周期性地发生,例如,每周、每月、每年、在 从一周到一年范围内的时间段后、在小于一周的时间段中、或者在大于一年的 时间段中。分配凭证的轮换也可或替选地非周期性地发生。例如,在客户端设 备104连接远程服务器102一定次数后。凭证轮换可发生于远程服务器102的 任何一个或多个端点。
旧的分配凭证的使用。一旦凭证轮换发生,客户端设备104可以使用旧的 凭证向远程服务器102进行请求—具体地,使用在紧接在最近的轮换之前生效 的凭证。这可发生在至少两种情形下:(1)如果远程服务器102生成包含新的 凭证的响应,但是该响应在其到达客户端设备104之前丢失(例如,由于通信 错误)。在该情况下,客户端设备104仍具有旧的凭证,而远程服务器102期望 新的凭证。(2)如果客户端设备104向远程服务器102同时进行多个请求(例 如,向同步服务器114进行请求以及向日志服务器116进行请求),网络或者服 务器处理延迟可导致在来自相同客户端设备104的另一请求已经引起凭证轮换 后,包含旧的凭证的请求被远程服务器102处理。
为了处理这些情形,无论远程服务器102何时轮换设备的分配凭证,远程 服务器102可保持对于认证设备的旧的凭证所必需的信息。此后,对于可配置 的时间段(即,可为例如12小时、24小时、36小时、在12小时到36小时的 范围内、小于12小时、或者大于36小时的宽限期),远程服务器102将允许客 户端设备104使用其目前的凭证或者旧的凭证进行认证。在该宽限期期间,每 次当客户端设备104使用其旧的凭证认证时,远程服务器102可(再次)命令 客户端设备104将其凭证更新到目前的凭证。在许多实施方式中,一旦宽限期 期满,使用旧的凭证以认证的另外尝试被远程服务器102以HTTP 401未授权的 响应立即拒绝。
现在转向图28A至图32C,其图形化地描述多个上述提到的认证过程中的 一些过程。具体地,图28A示出根据一实施方式的用于认证客户端设备以与其 分配的同步服务器通信的过程的通信序列1800。过程1800可在多种情形下执行。 例如,可对客户端设备104初始连接至远程服务器102、在客户端设备104已丢 失其分配凭证后的后续连接等执行过程1800。在操作1802中,客户端设备104 将其默认凭证传送给注册服务器112。作为响应,在操作1804中,注册服务器 112生成分配凭证且将其发送给客户端设备104。在操作1806中,客户端设备 于是可使用这些分配凭证以与远程服务器102的其他元件(例如它的分配的同步服务器114A)建立通信。
图28B为根据一实施方式的客户端设备与其分配的同步服务器进行通信的 过程1810的流程图。在操作1812中,客户端设备104与注册服务器112建立 连接。客户端设备104可使用例如设置在存储元件128中的注册服务器位置128A 来建立其连接。一旦连接且在发送它的默认凭证之前,在操作1814中,客户端 设备104可确定它与注册服务器112已建立的连接是否是安全的(例如SSL、 TSL等)连接。如果该连接是不安全的,则处理可继续至操作1816,在操作1816 中,客户端设备104执行回退算法。在执行回退算法中,客户端设备104在尝 试与注册服务器112建立安全连接之前可等待逐渐增长的时间段。然而,在一 些实施方式中,客户端设备104可不执行回退算法,而是可持续尝试与注册服 务器112例如以周期性的间隔重新建立安全连接。
然而,如果该连接被确定是安全的,则处理可继续至操作1818。在操作1818 中,客户端设备104将其默认凭证(例如默认凭证128E)传送给注册服务器112。 该默认凭证通常包括设备标识符和设备秘密。
一旦默认凭证被发送,则客户端设备104期望注册服务器112将分配凭证 提供给客户端设备104。因此,在操作1820中,客户端设备104确定它是否已 经从注册服务器112接收到分配的凭证。如果客户端设备104未接收到分配凭 证(例如,在一定时间段后),这可表示通信故障或者其他类型的故障。因此, 处理可继续至操作1816。
否则,处理继续至操作1822,在操作1822中,客户端设备104存储所接收 到的分配的凭证。例如,客户端设备104可将所接收的凭证作为分配的凭证128F 存储在存储元件128中。
一旦客户端设备104已经获取分配的凭证,则它可成功地与远程服务器102 中的一个或多个元件通信。在该特定的实施方式中,在操作1824中,客户端设 备104使用分配的凭证128F与其分配的同步服务器114建立连接。然而,应意 识到,客户端设备104也可以或者可替选地使用其分配凭证与远程服务器102 的其他元件建立连接,例如注册服务器112、日志服务器116等。
图28C为根据一实施方式的注册服务器生成用于客户端设备的分配凭证的 过程1830的流程图。在操作1832中,注册服务器112监控来自一个或多个客 户端设备的通信。当接收到来自客户端设备104的通信时,处理继续至操作1834, 在操作1834中,注册服务器112确定它是否接收到来自客户端设备104的默认 凭证。如果没有接收到,则注册服务器112可继续监控来自客户端设备104的 通信,可选地在一定时间段后与客户端设备断开连接。否则,处理可继续至操 作1836。
在操作1836中,在将任何分配凭证发送给客户端设备之前,注册服务器112 确定它与客户端设备104的连接是否是安全的。如果不安全,则处理可继续至 操作1838,在操作1838中,注册服务器112拒绝客户端设备104访问注册服务 器112所提供的一个或多个资源(例如,分配凭证)。在拒绝访问资源中,注册 服务器112可选地可以例如在一定时间段后与客户端设备断开连接。如果注册 服务器112确定它与客户端设备104的连接是安全的,则处理可继续至操作 1840。
在操作1840中,注册服务器112确定默认凭证从特定的客户端设备已传送 给注册服务器112的速率是否超过预设的速率。例如,注册服务器112可确定 特定的客户端设备104是否以每小时5次、每小时10次、每小时15次、在每 小时5次至每小时15次的范围内的速率、每小时小于5次的速率、或者每小时 大于15次的速率呈现默认凭证。如果客户端设备104以这样的速率呈现它的默 认凭证,这可表示安全漏洞,例如使用一组偷窃的默认凭证反复尝试生成新的 分配凭证。因此,如果超出预设速率,则处理可继续至操作1838。否则,处理 可继续至操作1842。
在操作1842中,注册服务器112确定默认凭证是否有效。例如,注册服务 器112可将所接收的默认凭证与注册服务器112所存储的与连接的客户端设备 104相关联的默认凭证(例如被注册服务器112存储到存储元件118中的默认凭 证198中的一个)相比较。在一个特定的实施方式中,所接收的默认凭证可包 括默认标识符和默认秘密,其中默认标识符唯一识别该客户端设备以及默认秘 密是与客户端设备相关联的仅仅被客户端设备和注册服务器得知的唯一字符串 或数据序列。当接收到默认凭证时,注册服务器112使用默认标识符以识别对 应于客户端设备的默认秘密(例如存储在存储元件118处)。注册服务器112然后将所接收的默认秘密与其所存储的默认秘密相比较。如果它们匹配,则该默 认凭证被认为是有效的。否则,它们被认为是无效的。
在一些实施方式中,默认标识符可包括制造密钥标识符,制造密钥标识符 识别用于加密默认秘密的制造密钥。默认秘密可例如为使用制造密钥标识符所 识别的制造密钥加密的默认标识符。因此,注册服务器可首先识别所接收的制 造密钥标识符所识别的制造密钥,使用该密钥加密(例如,使用诸如 HMAC-SHA256的算法执行单向散列)默认标识符,以及将该结果与所接收的 默认秘密比较以确定默认凭证是否有效。在这种情形下,尽管对应于各个设备 104的默认秘密可预先存储在注册服务器112中,但在一些实施方式中,它们可不预先存储,而是由所接收的默认标识符和存储的制造密钥生成。
在一些实施方式中,默认凭证还可包括识别正从客户端设备传送的凭证的 类型的方案标识符。在该特定的实施方式中,该方案表示凭证是默认凭证。这 样的方案可被注册服务器112(以及远程服务器102的其他元件)使用以允许注 册服务器112快速地且有效地确定是默认凭证、分配凭证还是另一类型的设备 凭证正从客户端设备传送。
如果注册服务器112确定所接收的默认凭证是有效的,则处理继续至操作 1844,在操作1844中,注册服务器112确定来自客户端设备104的联系是初始 联系(例如,客户端设备第一次请求分配凭证)还是后续的联系(例如,客户 端设备第二次、第三次或者后续次数请求分配凭证)。
注册服务器112可使用多种不同的技术中的一种或多种技术进行这种确定。 在一个实施方式中,注册服务器112可看一看它是否已经有针对连接的客户端 设备104而存储的任何分配凭证(例如,分配凭证150G中的一个)。在另一实 施方式中,注册服务器112可查看用于连接的客户端设备104的初始联系标志 是否已经被置位,其中,客户端设备104第一次向注册服务器112呈现默认凭 证时,初始联系标志可被置位。
如果注册服务器112确定来自客户端设备104的联系是初始联系,则处理 可继续至操作1846。在操作1846中,注册服务器112生成用于连接的客户端设 备104的分配凭证,且将该分配凭证存储在可被远程服务器102的多个元件访 问的存储元件中。例如,注册服务器112可将分配凭证作为分配凭证199存储 在存储元件118中。分配凭证可包括例如唯一识别客户端设备104的分配的标 识符。在一个实施方式中,分配的标识符包括从所接收的默认凭证提取的设备 序列号。分配凭证也可包括分配的秘密,其中,该分配的秘密为与客户端设备 相关联的仅仅被客户端设备和注册服务器所得知且由远程服务器102提供的唯一的字符串或数据序列。在一个实施方式中,该分配的秘密是随机数,例如随 机生成的128-位序列。一旦生成分配凭证,在操作1848中,则分配凭证被传送 给客户端设备104。
另一方面,在操作1844中,如果注册服务器112确定来自客户端设备104 的联系不是初始联系(即,它是后续联系),则处理可继续至操作1850。在注册 服务器112确定来自客户端设备104的联系不是初始联系的情况下,这可表示 客户端设备104不知何故丢失其分配凭证。这可表示安全漏洞,因此必要时, 注册服务器112可强制客户端设备104与用户账户重新配对。因此,在操作1850 中,注册服务器112确定客户端设备是否与用户账户配对。如果配对,则处理 可继续至操作1852,在操作1852中,注册服务器112取消该设备与账户的配对, 有效地强制客户端设备104的用户使该设备与账户重新配对,在此后,处理继 续操作1846。否则,处理可继续操作1846,而无需使该设备取消配对。
图28D为根据一实施方式的同步服务器与分配的客户端设备通信的过程 1860的流程图。应意识到,尽管在与同步服务器114通信的环境下描述了过程 1860,但是类似的过程可被用于促进与使用分配凭证的远程服务器102的其他 元件(例如,注册服务器112、日志服务器116等)通信。
在操作1862中,同步服务器监控来自一个或多个客户端设备的通信。当接 收到来自客户端设备104的通信时,处理继续至操作1864,在操作1864中,同 步服务器114确定它是否接收到来自客户端设备104的分配凭证。如果没有接 收到,则同步服务器114可继续监控来自客户端设备104的通信,可选地在一 定时间段后,断开与客户端设备的连接。否则,处理可继续至操作1866。
在操作1866中,在授权访问一个或多个安全资源之前,同步服务器114确 定它与客户端设备104的连接是否安全。如果不安全,则处理可继续至操作1868, 在操作1868中,同步服务器114拒绝客户端设备104访问由同步服务器114提 供的一个或多个资源(例如,数据桶)。在拒绝访问资源中,同步服务器114可 选地可以在例如一定时间段后断开与客户端设备的连接。如果同步服务器114 确定它与客户端设备104的连接是安全的,则处理可继续至操作1870。
在操作1870中,同步服务器114确定客户端设备所呈现的分配凭证是否有 效的。如果它们是有效的,则处理可继续至操作1872,在操作1872中,同步服 务器114授权客户端设备访问安全资源(例如与设备相关联的数据桶)。否则, 处理可继续至操作1868,在操作1868中,拒绝访问。
简略地转向图28E,图28E为根据第一实施方式的用于确定分配凭证是否 有效的过程1870的流程图。在操作1870A中,同步服务器114将所接收的分配 凭证与先前存储的分配凭证相比较,其中,例如在操作1846中所述,先前所存 储的分配凭证由注册服务器112生成且存储。如果所接收的分配凭证和与连接 的客户端设备104相关联的先前所存储的分配凭证相同,则处理继续至操作 1870B,在操作1870B中,所接收的凭证被确定为是有效的。否则,处理继续至 操作1870C,在操作1870C中,所接收的凭证被确定为是无效的。
在一个特定的实施方式中,所接收的分配凭证可包括分配的标识符和分配 的秘密且由远程服务器分配,其中,所分配的标识符唯一识别客户端设备且该 分配的秘密为与客户端设备相关联的仅仅被客户端设备和远程服务器所得知的 唯一的字符串或数据序列。当接收到分配凭证时,同步服务器114使用分配的 标识符以识别对应于客户端设备的分配的秘密(例如,存储在存储元件118处)。 同步服务器114然后将所接收的分配秘密与它存储的分配秘密比较。如果它们 匹配,则分配凭证被认为是有效的。否则,它们被认为是无效的。
在一些实施方式中,分配凭证可包括识别正从客户端设备传送的凭证的类 型的方案标识符。在该特定的实施方式中,该方案表示凭证是分配凭证。这样 的方案可被同步服务器114(以及远程服务器102的其他元件)使用以允许同步 服务器114快速地且有效地确定是默认凭证、分配凭证还是另一类型的设备凭 证正从客户端设备传送。
现转向图28F,图28F为根据第二实施方式的用于确定分配凭证是否有效的 过程1870的流程图。的确,结合图28E描述的实施方式可适用于不使用凭证轮 换的情况,且可适用于使用凭证轮换但是同步服务器114确定最近未生成新的 分配凭证的情况。即,操作1870在例如在标题为“分配凭证的管理”部分描述 的宽限期之外。相反,在图28F中描述以及结合图28F中描述的实施方式可适 用于使用凭证轮换且一组新的分配凭证最近(例如,在上24小时内)被生成且 传送给客户端设备的情况。因此,远程服务器102可至少暂时地具有两组分配 凭证,客户端设备104可使用该两组分配凭证以能够访问远程服务器102的实体。这些包括‘先前分配的凭证’以及‘最近分配的凭证’,其中,在生成最近 分配的凭证之前,该先前分配的凭证被生成且用于认证客户端设备,先前分配 的凭证以及最近分配的凭证两者可用于在宽限期期间认证客户端设备,且只有 最近分配的凭证可用于在宽限期期满后认证客户端设备。
在操作1870G中,当接收到来自客户端设备104的分配凭证时,同步服务 器114将所接收的分配凭证与存储在例如存储元件118中的最近分配的凭证比 较。如果所接收的凭证与最近分配的凭证相同,则客户端设备在宽限期期间使 用正确的凭证,从而处理可继续至操作1870K,在操作1870K中,同步服务器 114确定所接收的凭证是有效的。
相反,如果所接收的凭证与最近分配的凭证不同,则处理可继续至操作 1870H,在操作1870H中,所接收的凭证与存储在例如存储元件118中的先前分 配的凭证比较。如果所接收的凭证此时与先前分配的凭证不同,则所接收的凭 证既与最近分配的凭证不同、也与先前分配的凭证不同,从而处理继续至操作 1870I,在操作1870I中,同步服务器114确定所接收的凭证是无效的。
如果同步服务器114确定所接收的凭证与先前分配的凭证相同,则这可表 示尽管生成用于客户端设备的新的分配凭证,但客户端设备仍未接收它们或仍 未开始使用它们(例如,由于通信故障)。处理可从而继续至操作1870J,在操 作1870J中,同步服务器114(再次)将最近分配的凭证发送给客户端设备104, 然后继续至操作1870K,在操作1870K中,同步服务器114确定所接收的凭证 是有效的。
现转向图28G,图28G为根据第三实施方式的用于确定分配凭证是否有效 的过程1870的流程图。与参照图28F所述的实施方式一样,该实施方式可适用 于使用凭证轮换且一组新的分配凭证最近被生成且被传送给客户端设备的情 况。另外,该实施方式可适用于凭证的秘密部分以散列的形式存储在前端服务 器(例如,在注册服务器112、同步服务器114和/或日志服务器116)处以及(在 一些情况下)非散列的形式存储在远程存储器(例如存储元件118)中的情形下。 在这种情况下,因为只存储分配的秘密的散列版本的同步服务器114,当客户端 设备需要分配凭证时,通常不能够重新生成分配凭证以回送给客户端设备,故 引起的新的挑战。为了重新生成分配凭证,如果非散列的凭证存在或者在一些 实施方式中执行如文中所述的另外的处理,则同步服务器114可访问远程存储 的非散列的凭证(潜在地增加安全风险)。
在操作1870O中,同步服务器114从接收的分配凭证中提取分配的秘密。 在操作1870P中,同步服务器114使所提取的分配的秘密散列。同步服务器114 可采用任何合适的散列函数,例如SHA-256单向散列函数,只要该散列函数与 当生成用于客户端设备的分配凭证时先前所使用的散列函数相同。
然后,处理继续至操作1870Q,在操作1870Q中,同步服务器114将所提 取的分配的秘密的散列与用于先前分配的凭证的分配的秘密的散列(如所述, 其可被缓存在前端服务器中)比较。如果它们相同,则客户端设备在宽限期期 间正使用正确的凭证,从而处理可继续至操作1870R,在操作1870R中,同步 服务器114确定所接收的凭证是有效的。
相反,如果它们不同,则处理可继续至操作1870S,在操作1870S中,所提 取的分配的秘密的散列与用于最近分配的凭证的分配的秘密的散列(如所述, 其也可被缓存在前端服务器中)比较。此时,如果它们不同,则所接收的凭证 既与最近分配的凭证不同、也与先前分配的凭证不同,从而处理继续至操作 1870T,在操作1870T中,同步服务器114确定所接收的凭证是无效的。
如果同步服务器114确定它们相同,则这可表示尽管生成用于客户端设备 的新的分配凭证,但是客户端设备仍未接收它们或仍未开始使用它们(例如, 由于通信故障)。处理可从而继续至操作1870U,在操作1870U中,同步服务器 114解密最近分配的凭证的加密版本。如后来参照图29C所讨论的,当分配凭 证新生成时(在轮换期间),分配凭证的加密版本以及散列版本可暂时地(例如, 在宽限期期间)存储在前端服务器中。尽管可能无法从散列版本中确定分配凭 证(由于,例如单向散列函数),可从加密版本中确定分配凭证。以这样的方式, 前端服务器能够重新生成分配凭证,而无需存储(相对不安全)分配凭证的未加密版本且无需依赖该未加密版本的远程存储的副本(例如,在存储元件118 处)。
如结合图29C还论述的,在前端服务器处存储的最近分配的凭证可使用被 远程服务器102和客户端设备104两者得知的任何合适的密钥进行加密。这可 是对称密钥、非对称密钥、或者任何其他的合适的密钥。在一个特定的实施方 式中,最近分配的凭证使用先前分配的凭证进行加密。以这种方式,理所当然 地在认证设备中,前端服务器不需要永久性地存储该密钥,而是非常方便地从 客户端设备接收密钥(即在操作1870O中)。
一旦所加密的最近分配的凭证被解密,则处理继续至操作1870V,在操作 1870V中,同步服务器114将(现加密的)最近分配的凭证传送给客户端设备 104。然后,处理可继续至操作1870W,在操作1870W中,同步服务器114(或 者存储加密凭证的前端服务器)删除最近分配的凭证(即,解密的凭证)。通过 从前端服务器删除该最近分配的凭证,这可有利地减小最近分配的凭证被盗用 的风险。然后,处理继续至操作1870R,在操作1870R中,同步服务器114确 定所接收的凭证是有效的。
应理解到,在图28A至图28G中示出的具体操作提供了根据多个实施方式 的用于认证客户端设备以与其分配的同步服务器通信的特定过程。根据可替选 的实施方式,也可执行其他序列的操作。例如,本发明的可替选的实施方式可 以以不同的次序执行上文所概述的操作。此外,在图28A至图28G中示出的各 个操作可包括多个子操作,该子操作可以以适合于各个操作的不同顺序执行。 另外,根据特定的应用,可增加额外的操作或者可去除现有的操作。本领域普 通技术人员将意识且理解到许多变型、修改和变更。
图29A示出根据一实施方式的用于轮换分配凭证的过程的通信序列1900。 在操作1902中,客户端设备104与远程服务器102建立通信。该通信可与远程 服务器102的任何实体进行,例如注册服务器112、分配的同步服务器114、日 志服务器116等。在操作1904中,远程服务器102将新分配的凭证传送给客户 端设备104。作为响应,在操作1906中,客户端设备104在与远程服务器102 的后续通信中开始使用新分配的凭证。
图29B为根据一实施方式的客户端设备轮换其分配凭证的过程1910的流程 图。在操作1912中,客户端设备104使用其分配凭证与远程服务器102通信。 例如,分配凭证可作为初始化过程的一部分(例如参照操作306所描述的初始 化过程)已经从注册服务器112发送给客户端设备104。
在它与远程服务器102通信期间,处理继续至操作1914,在操作1914中, 客户端设备104确定它是否已经接收到新的分配凭证。如果没有接收到,则处 理返回至操作1912,在操作1912中,客户端设备104继续使用其分配凭证与远 程服务器102通信。否则,处理继续至操作1916。
在操作1916中,客户端设备104确定它是否通过安全连接来与远程服务器 102通信。在一些实施方式中,客户端设备仅仅通过安全连接来接受新的分配凭 证。然而,在其他实施方式中,客户端设备可通过非安全连接来接受新的分配 凭证。该特定实施方式描述了前者,其中,如果客户端设备104确定它在通过 非安全连接与远程服务器102通信,则它拒绝分配凭证。在该特定的情况下, 处理返回至操作1912,在操作1912中,客户端设备104继续使用其先前分配的 凭证与远程服务器102通信,但是在其他情况下,客户端设备104可不同地响 应,例如通过尝试建立安全连接、关闭其当前连接、建立与注册服务器112的 连接等。
另一方面,如果客户端设备104确定它在通过安全连接来与远程服务器102 通信,则处理继续至操作1918,在操作1918中,客户端设备104丢弃其先前分 配的凭证,且继续至操作1920,在操作1920中,客户端设备104然后使用从远 程服务器102接收的新分配的凭证继续其与远程服务器102的通信。
图29C为根据一实施方式的远程服务器轮换用于客户端设备的分配凭证的 过程1930的流程图。在操作1932中,远程服务器102从客户端设备104接收 分配凭证,且使用该分配凭证以认证客户端设备104。在操作1934中,远程服 务器102确定客户端设备目前使用的分配凭证是否期满。在一些实施方式中, 分配凭证周期性地期满,例如,每周、每月、每年、在一周到一年范围内的时 间段后、在小于一周的时间段内、或者在大于一年的时间段内。在其他实施方 式中,分配凭证非周期性地期满,例如在客户端设备104连接至远程服务器102 一定次数之后。
如果远程服务器102确定分配凭证还没有期满,则处理将返回至操作1932, 在操作1932中,远程服务器102将继续使用其当前分配凭证接收且认证来自客 户端设备104的通信。否则,处理可继续至操作1936。
在操作1936中,远程服务器102确定它是否通过安全连接来与客户端设备 104进行通信。在一些实施方式中,远程服务器仅仅通过安全连接来生成新的分 配凭证和发送新的分配凭证。然而,在其他实施方式中,远程服务器可通过非 安全连接来生成新的分配凭证且发送新的分配凭证。该特定的实施方式描述了 前者,在此处如果远程服务器102确定它通过非安全连接来与客户端设备104 进行通信,则其拒绝生成且发送新的分配凭证。在该特定的情况下,处理返回 操作1932,在操作1932,远程服务器102继续使用其先前的分配凭证与客户端 设备104进行通信,但在其他情况下,远程服务器102可不同地响应,例如通过尝试建立安全连接、关闭其当前连接、使客户端设备与注册服务器112建立 连接等。
另一方面,如果远程服务器102确定它在通过安全连接来与客户端设备104 进行通信,则处理继续操作1938,在操作1938,远程服务器102生成用于连接 的客户端设备104的新的分配凭证。如所述,分配凭证可包括分配的标识符和 分配的秘密。例如,分配的标识符可包括客户端设备的序列号。在一个特定的 实施方式中,序列号可从呈现给远程服务器102的分配凭证中提取。另外,分 配的秘密可包括随机数,例如随机数可由远程服务器102生成。然后,在操作 1940中,远程服务器102可将新的分配凭证发送至客户端设备,且在一些情况 下,将新的分配凭证存储在远程服务器102处。
在特定的实施方式中,可采取措施以减少新分配的凭证被盗用的风险。例 如,新分配的凭证可被存储在远程存储器(例如,存储元件118)中,然而新分 配的凭证的加密且散列的版本可被存储在前端服务器(例如,分配的同步服务 器114)处。
因此,在操作1942中,远程服务器102可使新分配的凭证散列。尤其,远 程服务器102可使用先前讨论的散列算法中的任一算法使包括在凭证中的分配 的秘密散列。在操作1944中,远程服务器102将新分配的凭证的散列存储在前 端服务器中,例如同步服务器114的存储元件178中。以这种方式,该散列可 被快速访问且与所接收的凭证的散列相比较,如结合图28F讨论的。
在操作1946中,远程服务器102加密新分配的凭证。如也结合图28F所述, 新分配的凭证可使用任何合适的加密算法进行加密,在该加密算法中,密钥通 常被远程服务器102和客户端设备104得知。在操作1948中,新分配凭证的加 密版本也被存储在前端服务器处,在一些实施方式中,与分配凭证的散列一起 被存储在前端服务器处。然而,加密版本可被暂时存储,其中它们仅仅被存储 宽限期的时间段。以这种方式,在客户端设备104可使用先前生成的凭证或新 生成的凭证进行认证的宽限期期间,远程服务器102可使用新的分配凭证的加 密版本以生成新的分配凭证。如果在宽限期期间客户端设备104使用其先前分配的凭证进行认证其本身,则该新分配的凭证(未加密的)然后可发送给客户 端设备104。
一旦加密的新分配的凭证被存储,则在操作1950中,远程服务器102可删 除该新分配的凭证。在一些实施方式中,尽管远程服务器从其前端服务器删除 该新分配的凭证,但它可将(出于备份目的)新分配的凭证的副本(未加密的, 非散列的)保持在远程存储器中。
应理解到,在图29A至图29C中示出的具体操作提供了根据多个实施方式 的用于轮换分配的凭证的特定过程。根据可替选的实施方式,也可执行其他序 列的操作。例如,本发明的可替选的实施方式可以以不同的次序执行上文所概 述的操作。此外,在图29A至图29C中示出的各个操作可包括多个子操作,该 子操作可以以适合于各个操作的不同顺序执行。另外,根据特定的应用,可增 加额外的操作或者可去除现有的操作。本领域普通技术人员将意识且理解到许 多变型、修改和变更。
图30A示出根据一实施方式的用于处理拒绝的分配的凭证的过程的通信序 列2000。在操作2002中,客户端设备104通过将其分配的凭证发送给同步服务 器114而试图与同步服务器114(或者远程服务器102的其他实体)建立通信。 在操作2004中,这些分配凭证被拒绝,且因此同步服务器114将分配的凭证的 拒绝传送给客户端设备104。响应于接收到该拒绝,客户端设备104返回到注册 服务器试图重新获取分配的凭证,且通过在操作2006中将其默认凭证传送给注 册服务器112而实现这一点。
图30B为根据一实施方式的客户端设备处理拒绝的分配的凭证的过程2010 的流程图。在操作2012,客户端设备104与同步服务器114(或者远程服务器 102的其他实体)建立连接。客户端设备104可使用例如在如在操作312中接收 的同步服务器标识符而建立它的连接。一旦连接且在发送其分配的凭证之前, 在操作2014中,客户端设备104可确定它与同步服务器114已经建立的连接是 否是安全的(例如,SSL、TSL等)连接。如果该连接是不安全的,则处理可继 续至操作2016,在操作2016中,客户端设备104执行回退算法。在执行回退算 法中,在试图与同步服务器114建立安全的连接之前,客户端设备104可等待 逐渐地增长的时间段。然而,在一些实施方式中,客户端设备104可不执行回 退算法,而是可连续地试图例如以周期性的间隔与同步服务器114重新建立安 全连接。
然而,如果该连接被确定是安全的,则处理可继续只操作2018。在操作2018 中,客户端设备104将其分配的凭证(例如,分配的凭证128F)传送给同步服 务器114。分配的凭证通常包括设备标识符和设备秘密。
然后,处理可继续至操作2020,在操作2020中,客户端设备确定它传送给 同步服务器114的分配的凭证是否被同步服务器114成功地接受(即,确定是 有效的)。例如,如果客户端设备接收到来自同步服务器114的拒绝,则它可确 定该凭证未被接受。否则,它可确定凭证被接受。
如果分配的凭证被接受,则处理可继续至操作2022,在操作2022中,客户 端设备使用其分配的凭证与同步服务器进行通信。否则,处理可继续至操作 2024,在操作2024中,客户端设备104丢弃其分配的凭证。在该情况下,客户 端设备104预计其分配凭证是无效的以及它需要获取新的分配的凭证。因此, 客户端设备断开与同步服务器114的连接,且在操作2026中,从注册服务器处 获取新的分配的凭证。为了获取新的分配的凭证,客户端设备可进行处理,例 如结合图28B描述的处理。
应意识到,在一些实施方式中,在丢弃其分配的凭证以及获取新的凭证之 前,客户端设备104可试图通过同步服务器使用其分配的凭证超过一次。另外, 对于该特定的实施方式,由于注册服务器和同步服务器的处理分别与在图28C 和图28D中描述的处理类似,故该处理不再进行描述。
应理解到,在图30A至图30B中示出的具体操作提供了根据多个实施方式 的用于处理拒绝的分配的凭证的特定过程。根据可替选的实施方式,也可执行 其他序列的操作。例如,本发明的可替选的实施方式可以以不同的次序执行上 文所概述的操作。此外,在图30A至图30B中示出的各个操作可包括多个子操 作,该子操作可以以适合于各个操作的不同顺序执行。另外,根据特定的应用, 可增加额外的操作或者可去除现有的操作。本领域普通技术人员将意识且理解 到许多变型、修改和变更。
图31A示出根据一实施方式的用于将信息传送至日志服务器的过程的通信 序列2100。在操作2102中,客户端设备102通过发送默认凭证或分配的凭证而 与日志服务器116建立通信,其中,这些凭证可是有效的或无效的。在提供这 些凭证之后,在操作2104中,客户端设备104将日志信息传送给日志服务器116。 作为响应,在操作2106中,日志服务器116发送日志信息已经被接受的确认通 知。
图31B为根据一实施方式的客户端设备将日志信息传送给日志服务器的过 程2110的流程图。在操作2112中,客户端设备104与日志服务器116建立连接。 在建立连接中,客户端设备可建立安全的连接(例如,SSL、TSL或其他安全的 连接)或者不安全的连接。
一旦客户端设备104已经连接至日志服务器116(或者,在一些情况下,客 户端设备104已经连接至日志服务器116之前),在操作2114中,客户端设备 104确定它是否具有分配的凭证(例如,分配的凭证128F)。如果它不具有分配 的凭证,则处理可继续至操作2116,在操作2116中,客户端设备104将其默认 凭证(例如,默认凭证128E)传送给日志服务器116。如果它具有分配的凭证, 则处理可继续至操作2118,在操作2118中,客户端设备104将其分配的凭证(例 如,分配的凭证128F)传送给日志服务器116。在任何一种情况下,处理接着 继续至操作2120,在操作2120中,客户端设备将其日志信息发送给日志服务器 116,且在一些情况下,处理接着继续至操作2122,在操作2122中,客户端设 备接收日志信息被成功地传送的确认通知。
应意识到,尽管结合图31A和图31B描述的实施方式在客户端设备将日志 信息传送给日志服务器的环境下,当客户端设备将任何信息传送给远程服务器 102的任何实体时,可执行类似的操作。例如,当客户端设备104期望将信息桶 发送给其分配的同步服务器114时,客户端设备104可首先试图发送分配的凭 证,以及如果它没有分配的凭证,则发送默认凭证。
转向图31C,图31C为根据一实施方式的日志服务器用以接收和分类从客 户端设备传送的信息的过程2130的流程图。在该实施方式中,日志服务器基于 客户端设备的认证级别来分类信息。在操作2132中,日志服务器116与客户端 设备104建立连接。在一些实施方式中,该连接是安全的,然而在其他实施方 式中,该连接可以是不安全的。
在操作2134中,日志服务器116从客户端设备104接收设备凭证。设备凭 证可是默认凭证、分配凭证、或者一些其他类型的凭证。在操作2136中,日志 服务器从客户端设备104接收日志信息。
一旦日志服务器116已经接收设备凭证和日志信息,则在操作2138中,日 志服务器116确定所接收的设备凭证是否是分配的凭证。如果它们不是分配的 凭证,则处理继续至操作2140,在操作2140中,日志服务器将所接收的日志信 息分类为来自“未认证过的”设备。否则,处理继续至操作2142,在操作2142 中,日志服务器116确定从客户端设备104接收的分配的凭证是否是有效的。 用于进行这种确定的多种技术已经在文中进行描述,且任何这种技术可在此应 用。如果日志服务器116确定分配的凭证不是有效的,则处理继续至操作2140, 在操作2140中,它将所接收的日志信息分类为来自“未认证过的”设备。否则, 处理继续至操作2144,在操作2144中,它将所接收的日志信息分为来自“认证 过的”设备。
应意识到,在一些实施方式中,可存在除了未认证过的”和“认证过的” 之外的其他类型的表征。例如,可存在三层表征,其中,有效的分配的凭证与 最高级别的认证相关联,有效的默认凭证与中等级别的认证相关联,且任何无 效的凭证与最低级别的认证相关联。又例如,日志信息可(附加地或可替选地) 基于日志信息是通过安全连接还是非安全连接被传送而表征,其中,安全连接 比非安全连接表示更高级别的认证。
应理解到,在图31A至图31C中示出的具体操作提供了根据多个实施方式 的用于传送和分类日志信息的特定过程。根据可替选的实施方式,也可执行其 他序列的操作。例如,本发明的可替选的实施方式可以以不同的次序执行上文 所概述的操作。此外,在图31A至图31C中示出的各个操作可包括多个子操作, 该子操作可以以适合于各个操作的不同顺序执行。另外,根据特定的应用,可 增加额外的操作或者可去除现有的操作。本领域普通技术人员将意识且理解到 许多变型、修改和变更。
图32A示出根据一实施方式的客户端设备访问不同类型的信息的过程的通 信序列2200。当客户端设备已经与特定的用户账户配对时,客户端设备可获得 对与该账户相关联的信息的访问。否则,客户端设备可被拒绝访问这种信息。 在操作2202中,客户端设备104使用其分配的凭证与同步服务器114建立通信。 作为响应且在操作2204中,同步服务器114向客户端设备104提供对与该客户 端设备104配对的用户账户或者任意账户的访问。
图32B为根据一实施方式的客户端设备访问不同类型的信息的过程2210的 流程图。在操作2212中,客户端设备104将其分配的凭证发送给同步服务器。 在操作2214中,客户端设备104确定它是否已经获得权利访问与客户端设备104 相关联的用户账户。如果没有,则在操作2216中,客户端设备104可访问任意 账户。在一些实施方式中,替代访问任意账户,客户端设备104可被限制于它 可传送和/或从同步服务器114接收的信息的类型。如果在操作2214中,客户端 设备104确定它已经获得权利访问用户账户,则处理继续至操作2218,在操作 中2218,客户端设备获得权利访问用户账户。
图32C为根据一实施方式的同步服务器用以提供客户端设备访问不同类型 的信息的方法2220的流程图。在操作2222中,同步服务器114从客户端设备 104接收有效的分配的凭证。在一些实施方式中,该有效的分配的凭证必需通过 安全连接接收。在操作2224中,同步服务器114确定客户端设备是否与用户账 户配对。例如,同步服务器114可将所接收的设备标识符(例如,在分配的凭 证包括的设备标识符)与设备标识符/用户账户图178D比较,以确定用户账户 是否与该设备标识符相关联。如果没有关联,则处理可继续至操作2226,在操 作2226中,同步服务器114提供客户端设备对任意账户的访问,在大多数实施方式中,该任意账户不包括任何敏感信息。相反,如果存在与设备标识符相关 联的用户账户,则在操作2228中,同步服务器114提供客户端设备104对该用 户账户的访问。
应理解到,在图32A至图32C中示出的具体操作提供了客户端设备用以访 问不同类型的信息的特定方法。根据可替选的实施方式,也可执行其他序列的 操作。例如,本发明的可替选的实施方式可以不同的次序执行上文所概述的操 作。此外,在图32A至图32C中示出的单独操作可包括多个子操作,该子操作 可以适合于单个操作的不同顺序执行。另外,根据特定的应用,可增加额外的 操作或者可去除现有的操作。本领域普通技术人员将意识且理解到许多变型、 修改和变更。
示例性的设备、服务器和系统
图33示出了根据示例性的实施方式的监控设备108的部件。应意识到,结 合图33描述的部件对于结合图4的客户端设备104描述的那些部件可以是额外 的或者可替选的。在该特定的示例中,监控设备108是智能的、多传感的、网 络连接的设备。监控设备108可包括一个或多个传感器2302、用户-接口部件 2304、电源(例如包括电源连接2306和/或电池2308)、通信部件2310、模块化 单元(例如,包括插接站2312和可更换模块2314)和智能化部件2316。特定 的传感器2302、用户-接口部件2304、电源配置、通信部件2310、模块化单元和/或智能化部件2316在整个设备108上可以是相同的或类似的或者可根据设备 类型或模式而改变。
作为举例且不是限制,在设备108中的一个或多个传感器2302可能够例如 检测加速度、温度、湿度、水、供电、相近性、外部运动、设备运动、声音信 号、超声信号、光信号、火、烟雾、一氧化碳、全球-定位-卫星(GPS)信号、 射频(RF)信号或其他电磁信号或场。因此,例如,传感器2302可包括温度传 感器、湿度传感器、危险相关的传感器或者其他的环境传感器、加速计、麦克 风、光学传感器,包括照相机(例如,电荷耦合设备或摄像机)、有源或无源辐 射传感器、GPS接收器或者射频识别检测器。尽管图33示出具有单个传感器的 实施方式,许多实施方式将包括多个传感器。在一些例子中,设备108包括一 个或多个主传感器以及一个或多个辅传感器。该主传感器可感测对于设备的核 心操作处于中心的数据(例如,感测恒温器中的温度或感测烟雾检测器中的烟 雾)。该辅传感器可感测其他类型的数据(例如,运动、光或声音),该其他类 型的数据可用于能量-效率目的或者智能-操作目的。在一些例子中,一般用户可 甚至意识不到辅传感器的存在。
在设备108中的一个或多个用户-接口部件2304可被配置成通过可视显示器 (例如,薄膜晶体管显示器或有机发光二极管显示器)和/或扬声器将信息呈现 给用户。用户-接口部件2304还可包括用以从用户接收信息的一个或多个用户- 输入部件,例如触摸屏、按键、滚动部件(例如,可移动的或虚拟的环部件)、 麦克风或摄相机(例如,以检测手势)。在一个实施方式中,用户-输入部件2304 包括点击和旋转孔环部件,其中,用户能够通过旋转该孔环(例如,以调节设 定)和/或通过向内点击该孔环(例如,以选择所调节的设定或者以选择选项) 而与该部件交互。在另一实施方式中,用户-输入部件2304包括照相机,使得手 势能够被检测(例如,以指示设备的电源或者警报状态将被改变)。
在设备108中的电源部件可包括电源连接2306和/或局部电池2308。例如, 电源连接2306能使设备108连接至电源,例如线电压源。在一些例子中,对于 AC电源的连接2306可被用于反复地对(例如,可再充电的)局部电池2308充 电,使得在AC电源断开或者其他的缺电场景的情况下,需要的话,电池2308 可后来被用于提供过量的DC电源。
在设备108中的通信部件2310可包括能够使设备108与中央服务器或者远 程设备(例如文中所描述的另一设备或者便携式用户设备)通信的部件。作为 非限定示例,通信部件2310可允许设备108借助例如Wi-Fi、ZigBee、3G/4G 无线、CAT6有线以太网、家庭插电联盟(HomePlug)或其他电力线通信方法、 电话、或者光纤进行通信。通信部件2310可包括无线卡、以太网插头或者其他 收发器连接。
设备108中的模块化单元可包括静态的物理连接和可更换模块2314。因此, 模块化单元可提供更新可更换模块2314的能力,而无需完全重新安装设备108 (例如,以保持接线)。该静态的物理连接可包括插接站2312(其也可被称为接 口盒),插接站2312可附接于建筑结构。例如,插接站2312可借助螺钉被安装 在墙壁上或者通过粘结剂被粘结到天花板上。在一些例子中,插接站2312可延 伸穿过建筑结构的一部分。例如,插接站2312可借助穿过墙壁的石膏夹心纸板 而形成的孔而连接至在墙壁后面的接线(例如,连接至120V线路电压电线)。 插接站2312可包括电路,例如电源连接电路2306和/或AC到DC供电电路且 可防止用户暴露在高电压线下。在一些例子中,插接站2312专用于一种类型或 一种模式的设备,使得例如与烟雾检测器设备相比,恒温器设备包括不同的插 接站。在一些例子中,插接站2312可在多个类型和/或模式的设备108中共享。
模块化单元的可更换模块2314可包括该设备中的传感器2302、处理器、用 户-接口部件2304、电池2308、通信部件2310、智能部件2316等等中的一些或 全部。可更换模块2314可被配置成附接至(例如,插入至或连接至)插接站2312。 在一些例子中,一组可更换模块2314被生成,性能、硬件和/或软件在可更换模 块2314之间变化。因此,用户可容易地更新或替换他们的可更换模2314,而不 必替换全部设备部件或者完全重新安装设备108。例如,用户可以开始于廉价的 设备,廉价的设备包括具有受限的智能和软件能力的第一可更换模块。然后, 用户可容易地更新该设备以包括更有能力的可更换模块。又例如,如果用户具 有位于他们的地下室的模型#1设备、位于他们的客厅的模型#2设备、以及更新 它们的客厅设备以包括模型#3可更换模块,则用户可将模型#2可更换模块移动 到地下室中以连接至现有的插接站。该模型#2可更换模块然后可例如开始初始 化过程以识别其新的位置(例如,通过借助用户接口从用户处请求信息)。
设备的智能部件2316可支持各种不同设备功能中的一种或多种。智能部件 2316通常包括配置且程序控制以执行和/或导致被执行文中所描述的一个或多个 有利的功能的一个或多个处理器。智能部件2316可以以执行存储在本地存储器 (例如,闪存、硬盘驱动器、随机存取存储器)中的计算机代码的通用处理器、 专用处理器或专用集成电路、它们的组合的形式来执行,和/或使用其他类型的 硬件/固件/软件处理平台来执行。智能部件2316可进一步被实施为被中央服务 器或者基于云的系统远程控制或执行的算法的本地版本或对应部分,例如凭借 运行使用异步Java脚本和XML(AJAX)或者类似的协议来执行从云服务器提 供的指令的Java虚拟机(JVM)。例如,智能部件2316可为被配置成检测位置(例如,房屋或房间)何时被占用(包括检测它是否被特定的人员占据或者被 特定数目的人占用(例如相对于一个或多个阈值))的智能部件2316。这种检测 可例如通过分析麦克风信号、检测用户运动(例如在设备的前方)、检测门或车 库门的打开和关闭、检测无线信号、检测所接收的信号的IP地址、或者检测在 时间窗内一个或多个设备的操作而发生。智能部件2316可包括图像识别技术以 识别特定的占据者或物体。
在一些例子中,智能部件2316可被配置成预测可期望的设置和/或实现这些 设置。例如,基于存在检测,智能部件2316可调节设备设置以例如当无人在家 时或无人在特定的房间中时节省电源,或者符合用户偏好(例如,一般的在家 偏好或用户专用偏好)。又例如,基于特定人员、动物或物体(例如,儿童、宠 物或丢失的物体)的检测,智能部件2316可启动人员、动物或物体在哪的音频 指示或视觉指示,或者如果未识别的人员在某些情形下(例如在晚上或者当灯 关闭时)被检测到,可启动警报或安全特征。又例如,智能部件2316可在用户 设置中检测小时倾向、周倾向或者甚至季节性倾向且相应地调整设置。例如, 智能部件2316可检测到特定的设备在每个工作日上午6:30开启,或者设备设置 在过去的三个小时内逐渐地从高设置被调节为低设置。智能部件2316于是可预 测到设备将在每个工作日上午6:30开启,或者设置应在更长的时间段内继续逐 渐地降低其设置。
在一些例子中,设备可彼此交互,使得第一设备检测到的事件影响第二设 备的动作。例如,第一设备能够检测到用户已经进入车库(例如,通过检测车 库中的运动、检测车库中的灯的变化、或者检测车库门的开放)。第一设备可以 将该信息传送给第二设备,使得第二设备能够例如调节房间温度设置、灯设置、 音乐设置和/或安全警报设置。又例如,第一设备可检测用户接近前门(例如, 通过检测运动或者突然的灯图案的变化)。第一设备可例如使普通的音频信号或 视觉信号得以呈现(例如,门铃的发声)或者使位置特异性的音频信号或视觉 信号得以呈现(例如,播报在用户所占用的房间内的拜访者的存在)。
在某些实施方式中,监控设备108是智能的、多传感的、网络连接的设备, 其包括结合图33所描述的部件(和/或结合图4所描述的部件)。然而,本领域 技术人员应理解到,比在图33中所示的部件具有更少或更多数目的部件的这种 设备也同样能够良好操作。因此,在图33中的设备108的描述应当被作本质上 是说明性的,且不限制本教导的范围。
图34示出了智能家庭环境2400的示例,在该智能家庭环境2400中,文中 所进一步描述的设备、方法、系统、服务和/或计算机程序产品中的一个或多个 能够是可应用的。所描述的智能家庭环境包括结构2401,结构2401可包括例如 住宅、办公建筑、车库、或可移动房屋。应理解到,这些设备也可集成到不包 括完整结构2401的智能家庭环境中,例如公寓、大厦或办公空间。另外,智能 家庭环境能够控制和/或联接到在实际结构2401外的设备。事实上,智能家庭环 境中的一些设备根本不需要物理地在结构2401内,例如,控制泳池加热器或灌 溉系统的设备可定位在结构2401之外。
所描述的结构2401包括借助墙壁2403而至少部分地彼此隔开的多个房间 2402。墙壁2403可包括内墙壁或外墙壁。每个房间还可包括地板2404和天花 板2405。设备可安装在墙壁2403、地板或天花板上,或者与墙壁2403、地板或 天花板集成,和/或由墙壁2403、地板或天花板支撑。
在图34中描述的智能家庭包括多个客户端设备,客户端设备包括能够彼此 和/或与远程服务器系统无缝集成以提供各种有用的智能家庭目标中的任一种的 智能的、多传感的、网络连接的设备。在该智能家庭环境中和/或在图34中所示 的一个、多个、或每一个设备能够包括如结合图33所述的一个或多个传感器、 用户接口、电源、通信部件、模块化单元和智能部件。另外,在图34中所示的 一个、多个、或每一个设备能够使用文中所公开的任一技术彼此同步和/或与远 程服务器同步,且可操作以使用文中所公开的任一技术向远程服务器认证其身 份。
智能的、多传感的、网络连接的恒温器2406能够检测环境气候特征(例如, 温度和/或湿度)且控制加热、通风和空气调节(HVAC)系统2407。一个或多 个智能的、网络连接的、多传感的危险检测单元2408能够检测家具环境中的危 险物质和/或危险条件的存在(例如,烟雾、火、或一氧化碳)。一个或多个智能 的、多传感的、网络连接的入口通道接口设备2409,其可被称作“智能门铃”, 可检测人达到位置或者从位置离开,控制可听见的功能、凭借音频设备或视觉 设备通告人到达或离开,或者控制安全系统上的设置(例如,以启动安全系统 或使安全系统不活动)。
多个智能的、多传感的、网络连接的墙壁灯开关2410中的每一个能够检测 环境光照条件、检测房间占用状态、和控制一个或多个灯的功率状态和/或昏暗 状态。在一些例子中,灯开关2410可另外或可替选地控制风扇的功率状态或速 度,例如吊扇。多个智能的、多传感的、网络连接的墙壁插头接口2411中的每 一个可检测房间或围式空间的占用以及控制到一个或多个墙壁插头的电源供应 (例如,使得如果没有人在家,则电源不被供给到插头)。该智能家庭还可包括 多个智能的、多传感的、网络连接的家电2412,例如冰箱、电炉和/或烤箱、电 视、洗衣机、烘干机、灯(在结构2401内和/或在结构2401外)、立体音箱系统、对讲机系统、车库门开启器、落地扇、吊扇、全屋风扇、壁式空调、泳池加热 器2414、灌溉系统2416、安全系统等。
一个或多个接入设备可操作以通过LAN、WAN、或者其他无线或有线的通 信网络而与客户端设备进行通信。例如,接入设备2420可与智能家庭环境2400 内的一个或多个客户端设备进行通信,而接入设备2422可通过因特网2400与 智能家庭环境内的一个或多个客户端设备进行通信。所有的客户端设备和接入 设备也可与远程服务器2424进行通信,如文中所述,远程服务器2424可促进 在所有的设备之间状态的同步和/或设备的认证。尽管图34的描述能够识别特定 的传感器和与特定设备相关联的功能,应理解到多种传感器和功能(例如在整 个说明书中描述的那些传感器和功能)中的任一种可被集成到设备中。
除了包含处理能力和传感能力外,在智能家庭环境2400内的设备中的每一 个,如所述的,能够与智能家庭环境2400内的任何其他设备进行数据通信和信 息共享,以及与智能家庭环境2400外的设备(例如接入设备2422和/或远程服务 器2424)进行数据通信和信息共享。设备可凭借各种定制或标准的无线协议(Wi-Fi、ZigBee、6LoWPAN等)中的任一种和/或各种定制或标准的有线协议 (CAT6以太网、HomePlug等)中的任一种而发送和接收通信。墙壁插头接口 2411可用作无线的或有线的中继器,和/或可作为在(i)插入到AC插座且使用 Homeplug或其他电源线协议而通信的设备和(ii)未插入到AC插座的设备之间 的桥梁起作用。
例如,第一设备能够借助无线路由器2434与第二设备通信。设备还可经由 到网络(例如,因特网2436)的连接而与远程设备通信。通过该因特网2436, 该设备能够与中央(即远程的)服务器或云计算系统2424通信。远程服务器或 云计算系统2424可与和该设备相关的制造商、支持实体或者与服务提供商相关。 在一个实施方式中,用户可能够使用设备本身来联系顾客支持,而不需要使用 其他通信设备,例如电话或因特网连接的计算机。另外,软件更新可自动地从 远程服务器或云计算系统2424发送给设备(例如,当可得到时、当购买时、或 以常规间隔)。
设备的网络连接可进一步允许用户与该设备进行交互,即使用户不接近该 设备。例如,用户可使用计算机(例如,台式电脑、手提电脑或平板电脑)或 其他便携式电子设备(例如智能手机)(例如接入设备2422)与设备(例如,恒 温器2406)进行通信。网页或应用程序可被配置成接收来自用户的通信且基于 该通信控制该设备和/或将关于设备操作的信息呈现给用户。例如,用户可观看 设备的当前设定点温度且使用计算机来调节它。用户可在该远程通信期间在结 构内或者在结构外。
智能家庭环境2400还可包括各种非通信的遗留家电2430,例如旧的传统洗 衣机/烘干机、冰箱等,非通信的遗留家电能凭借墙装插头接口2411而受控制(尽 管被粗糙地(开/关)控制)。智能家庭还可包括各种部分通信的遗留家电2432, 例如IR-控制的壁式空调或者其他IR-控制的设备,部分通信的遗留家电2432可 通过危险检测单元2408或者灯开关2410提供的IR信号被控制。
在某些实施方式中,智能家庭2400为包括许多客户端设备和接入设备的环 境,所有的客户端设备和接入设备可操作以彼此通信且通过远程服务器进行同 步。然而,本领域技术人员应理解到,与图34中所示的部件相比,具有更少或 更多数目的部件的这种环境也同样能够良好操作。因此,在图34中的智能家庭 环境2400的描述应本质上看作是说明性的,且不限于本教导的范围。
图35示出根据一实施方式的专用计算机系统2500。各种实体,例如文中描 述的远程服务器102、监控设备108和/或接入设备110可被实施作为这种计算 机系统。上述方法可通过计算机程序产品来实施,该计算机程序产品指导计算 机系统以执行上述的方法和部件的动作。各个这样的计算机程序产品可包括在 计算机可读介质上体现的指令(代码)集,该计算机可读介质指导计算机系统 的处理器以执行对应的动作。所述指令可被配置成按顺序运行,或者并行运行 (例如,在不同的处理线程下),或者其组合。
专用计算机系统2500包括计算机2502、与计算机2502连接的监控器2504、 与计算机2502连接的一个或多个附加的用户输出设备2504(可选的)、与计算 机2502连接的一个或多个用户输入设备2506(例如,键盘、鼠标、跟踪球、触 摸屏)、与计算机2502连接的可选通信接口2508、存储在计算机2502中的有形 的计算机可读存储器中的计算机程序产品2510。计算机程序产品2510指导系统 2500以执行上述方法。计算机2502可包括一个或多个处理器2512,处理器2512 凭借总线子系统2514与许多外围设备进行通信。这些外围设备可包括一个或多 个用户输出设备2504、一个或多个用户输入设备2506、通信接口2508、和存储 子系统,例如随机存取存储器(RAM)2514和非易失性存储驱动器2516(例如 磁盘驱动器、光驱、固态驱动器),它们具有有形的计算机可读存储器的形式。
计算机程序产品2510可被存储在非易失性存储驱动器2516或者计算机 2502可访问的另一计算机可读介质中且加载到存储器2514中。各个处理器2512 可包括微处理器,例如来自或者Advanced Micro Devices,的微处理器 等。为了支持计算机程序产品2510,计算机2502运行操作系统,该操作系统处 理产品2510与上文提到的部件的通信、以及在上文提到的支持计算机程序产品 2510的部件之间的通信。示例性的操作系统包括来自微软企业的等、 来自Sun Microsystems的LINUX、UNIX等。
用户输入设备2506包括将信息输入到计算机系统2502的所有可能的类型 的设备和机构。这些用户输入设备可包括键盘、小型键盘、鼠标、扫描仪、数 字绘图板、合并到显示器中的触摸屏、音频输入设备(例如声音识别系统)、麦 克风和其他类型的输入设备。在多个实施方式中,用户输入设备2506通常体现 为计算机鼠标、跟踪球、跟踪板、操作杆、无线遥控、绘画平板、声音命令系 统。用户输入设备2506通常允许用户通过诸如点击按键等的命令来选择呈现在 监控器2504上的物体、图标、文本等。用户输出设备2504包括从计算机2502 输出信息的全部可能的类型的设备和机构。这些用户输出设备可包括显示器(例 如,监控器2504)、打印机、非可视显示器(例如,音频输出设备)等。
通信接口2508向其他通信网络2518和设备提供接口,且可用作从其他系 统、WAN和/或因特网接收数据和将数据传送至其他系统、WAN和/或因特网的 接口。通信接口2508的实施方式通常包括以太网卡、调制解调器(电话、卫星、 电缆、ISDN)、(异步)数字用户线路(DSL)单元、Fire接口、接 口、无线网络适配器等。例如,通信接口2508可与计算机网络连接、与Fire总线等连接。在其他的实施方式中,通信接口2508可物理地集成在计算机2502 的主板上,和/或可以为计算机程序等。
RAM 2514和非易失性存储驱动器2516为有形的计算机可读介质的示例, 有形的计算机可读介质被配置成存储诸如本发明的计算程序产品实施方式的数 据,包括可执行的计算机代码、人可读的代码等。其他类型的有形的计算机可 读介质包括软盘、可移除的硬盘、诸如CD-ROM的光存储介质、DVD、条形码、 诸如闪存、只读存储器(ROM)的半导体存储器、电池支持的易失性存储器、 网络存储设备等。RAM 2514和非易失性存储驱动器2516可被配置成存储基础 的程序设计和数据构造,基础的程序设计和数据构造提供如上所述的本发明的 多个实施方式的功能性。
提供本发明的功能性的软件指令集可被存储在RAM 2514和非易失性存储 驱动器2516中。这些指令集或代码可由一个或多个处理器2512执行。RAM 2514 和非易失性存储驱动器2516也可提供储存库以存储根据本发明使用的数据和数 据结构。RAM 2514和非易失性存储驱动器2516可包括许多存储器,包括用以 在程序执行期间存储指令和数据的主随机存取存储器(RAM)和存储固定指令 的只读存储器(ROM)。RAM 2514和非易失性存储驱动器2516可包括文件存 储子系统,文件存储子系统提供程序和/或数据文件的持久性(非易失性的)存 储。RAM 2514和非易失性存储驱动器2516还可包括可移除的存储系统,例如 可移除的闪存。
总线子系统2514提供允许计算机2502的多个部件和子系统如预期地彼此 进行通信的机构。尽管总线子系统2514示意性地显示为单个总线,但总线子系 统的可替选的实施方式可利用计算机2502内的多个总线或通信路径。
对于固件和/或软件实现,可利用执行文中所述的功能的模块(例如,程序、 函数等)来执行方法。有形地体现指令的任何机器可读介质可用于执行文中所 述的方法。例如,软件代码可被存储在存储器中。存储器可实施在处理器内或 处理器外。如文中使用的术语“存储器”指任何类型的长期的、短期的、易失 性的、非易失性的、或其他的存储介质,且不限于任何特定类型的存储器或者 特定数目的存储器、或者特定类型的存储存储器的介质。
此外,如文中所公开的术语“存储介质”可代表一个或多个用于存储数据 的存储器,包括只读存储器(ROM)、随机存取存储器(RAM)、磁性RAM、 磁芯存储器、磁盘存储介质、光存储介质、闪存设备和/或用于存储信息的其他 机器可读介质。术语“机器可读介质”包括但不限于便携式或固定的存储设备、 光存储设备、无线信道和/或多种其他的能够存储、包含或携带指令和/或数据的 存储介质。
图36示出了可扩展设备和服务平台的网络级的视图,图33的智能家庭可 与该平台集成。结合图34的结构2401所讨论的各个智能的、网络连接的设备 可与一个或多个远程服务器或云计算系统2424进行通信。通过直接建立到因特 网2436的连接(例如,使用到无线运营商的3G/4G连接性)、或者通过集线器 网络(其可为从简单无线路由器例如直到和包括智能的、专用的整个家庭控制 节点的方案)建立到因特网2436的连接、或者通过其任意组合,能够实现通信。
远程服务器或云计算系统2424可以从智能家庭设备采集操作数据2602。例 如,该设备可按照惯例传送操作数据或者可在特定的情形下传送操作数据(例 如,当请求顾客支持时)。远程服务器或云计算系统2424可进一步提供一种或 多种服务2604。服务2604可包括,例如软件更新、顾客支持、传感器数据采集 /记录、远程访问、远程控制或分布控制、或者使用建议(例如,基于采集的操 作数据2602以改善性能、减小利用成本等)。与服务2604相关联的数据可被存 储在远程服务器或者云计算系统2424处,且远程服务器或者云计算系统2424 可在合适的时间检索和传送该数据(例如,以规律的间隔、当接收来自用户的 请求时等)。
如图36中所示,所描述的可扩展设备和服务平台的一个显著性特征是处理 引擎2606,处理引擎2606可集中在单个数据处理服务器2607(其可包括在远 程服务器2424中或与远程服务器2424分开)或者在数个不同的计算实体当中 分布,而没有限制。处理引擎2606可包括配置成接收来自一组设备的数据(例 如,通过因特网或集线器网络)、索引数据、分析数据和/或基于分析或者分析的 一部分生成统计的引擎。所分析的数据可被存储为导出数据2608。分析或统计 的结果可此后被回传送给提供用于导出该结果的ops数据的设备、传送给其他设 备、传送给为设备的用户提供网页的服务器、或者传送给其他非设备的实体。 例如,使用统计、相对于其他设备使用的使用统计、使用方式和/或汇总传感器 读数的统计可被传送。结果或统计可借助因特网2436而提供。以这样的方式, 处理引擎2606可被配置且程序控制以从从智能家庭处获得的可操作数据中得到 各种有用的信息。单个服务器可包括一个或多个引擎。
导出的数据在出于各种有用目的的各种不同的粒度上可以是非常有益的, 从基于每家、每一地区或每一区域的设备的显式程序控制(例如,针对电子器 件的需求-响应程序)到可以以每家为基础协助的推断抽象的生成(例如,可以 进行这样的推断,家庭拥有者已经离开去度假,因此安全检测仪器可以带有加 强的灵敏度),到可以用于政府或慈善目的的统计和相关联的推断抽象的生成。 例如,处理引擎2606可生成关于众多设备之间的设备使用的统计,且将该统计 发送给设备用户、服务提供商或其他实体(例如,其已经请求统计或者可能对 于该统计提供货币补偿)。作为特殊的说明,统计可被传送给慈善机构2622、政 府实体2624(例如,食品和药物管理局或环境保护署)、学术机构2626(例如 大学研究者)、企业2628(例如,向有关的设备提供设备保修或服务)、或者公 用事业公司2630。这些实体可使用所述数据以形成程序以减小能量使用、以预 先服务故障设备、以为高服务需求做准备、以追踪过去的服务业绩等、或以执 行各种现在已知或者此后发展的有益的功能或任务。
图37示出了图36的可扩展的设备和服务平台的抽象功能视图,特别参考 了处理引擎2606以及智能家庭的设备。尽管位于智能家庭环境中的设备将具有 变化无穷的不同单个功能和限制,但是它们可以都被视为共享共同特征,因为 它们中的每一个为数据消费者2702(data consumer,DC)、数据源2704(data source,DS)、服务消费者2706(servicesconsumer,SC)以及服务源(services source,SS)2708。有利地,除了提供设备实现其本地和即时目标所需的基本的 控制信息以外,可扩展的设备和服务平台也可以配置成控制流出这些设备的大 量数据。除了改善或优化设备本身相对于其即时功能的实际操作外,可扩展的 设备和服务平台可以指向以多种自动的、可扩展的、灵活的、和/或可伸缩的方 式来“再利用”该数据以实现多种有用的目标。可以基于例如利用类型、设备 效率、和/或用户输入(例如,请求特定功能)来预先限定或适应性地识别这些 目标。
例如,图37将处理引擎2606示出为包括多个范例2710。处理引擎2606可 以包括管理服务范例2710a,管理服务范例2710a监控和管理主设备功能或辅设 备功能。设备功能可以包括给定用户输入时确保设备的适当操作、估计(例如, 以及响应于)侵入者在住所内或正在尝试进入到住所内、检测联接至该设备的 仪器的故障(例如,灯泡被烧毁)、执行或在其它方面响应能量需求响应事件、 或警告用户当前的或预测到的未来事件或特征。处理引擎2606可以还包括广告 /通信范例2710b,广告/通信范例2710b基于设备使用来估计用户感兴趣的特征 (例如,人口统计学信息)、需求和/或产品。然后可以将服务、推广、产品或更新供应或自动地提供给用户。处理引擎2606可以还包括社交范例2710c,社交 范例2710c利用来自社交网络的信息、向社交网络提供信息(例如,基于设备 使用)、和/或处理与社交网络平台的用户和/或设备交互相关的数据。例如,如 被汇报给社交网络上的他们可信赖的联络人的用户状态可以被更新,以基于光 线检测、安全系统不活跃或设备使用检测器来指示出他们何时在家。如另一示 例,用户能够与其它用户分享设备使用统计。处理引擎2606可以包括挑战/规则 /遵守/奖励范例2710d,挑战/规则/遵守/奖励范例2710d告知用户挑战、规则、 遵守规章和/或奖励,和/或利用操作数据来确定是否面临挑战、是否符合规则或规章和/或是否已经挣到奖励。挑战、规则或规章可以涉及对于节能、安全居住 (例如,减少暴露于毒素或致癌物质)、节约钱和/或延长设备寿命、改善健康等 的努力。
处理引擎可以集成或在其它方面利用来自外部源的外部信息2716来改进一 个或多个处理范例的功能。外部信息2716可以用于解释从设备接收到的操作数 据,以确定该设备附近的环境的特征(例如,包围该设备的结构的外部),以确 定用户可用的服务或产品,以识别社交网络或社交网络信息,以确定该设备附 近等的实体(例如,公众服务实体,例如紧急情况响应团体、警察局或医院) 的接触信息,以识别统计或环境条件、与家庭或邻里相关的趋势或其它信息等。
从普通到深远,所描述的可扩展的设备和服务平台(并且适合在其范围内) 可以带来特别的范围和各种益处。因此,在一个“普通的”示例中,智能家庭 的各个卧室可设置有烟雾/火/CO警报器,烟雾/火/CO警报器包括占用传感器, 其中,该占用传感器也能够推断(例如,凭借运动检测、面部识别、可听见的 声音模式等)占用者是睡着了还是醒着。如果感测到严重的火灾,则远程安全/ 监控设备或消防部门被告知在每一卧室中有多少居住者,以及那些居住者是否 仍处于睡眠中(或不动的)或他们是否适当地疏散出卧室。当然,尽管这是所 描述的设备和服务平台所提供的非常有利的能力,但是可以有基本上更“深远的” 示例,这些示例可以真实地示出可以被利用的更高“智商”的潜力。通过或许更“深 远的”示例,在邻里儿童发展和教育的社交范例的背景下,用于火灾安全的卧室 占有数据中的同样数据也可以被处理引擎2606“更改用途”。因此,例如,在“普 通的”示例中所讨论的同样卧室占用和运动数据可以被收集和可以用于处理(适 当地隐匿),其中在特别的邮政编码中的学校儿童的睡眠类型可以被识别和跟 踪。学校儿童的睡眠类型的局部变化可以被识别并例如关联到地方学校中的不 同营养计划。
在本专利说明书中描述的同步/认证技术已经被发现当结合本发明说明书中 描述的许多智能家庭设备应用时是尤其令人满意的,因为在理论上可实现的与 实际上以有成本效益的且消费者有效的方式实施每日家居自动化和控制之间存 在有利的平衡。因此,在设备同步方面,尽管所描述的方法可能在“竞争条件” 结果中有争议地导致某种程度的延时或某种程度的瑕疵(例如,如果两部智能 手机试图在同一时间控制同一恒温器),但是所描述的方法能较好地处理且从各 种不利的事件中恢复原状,例如家庭网络问题、Wi-Fi中断、以及需要一些设备 (例如能量缓冲的偷电型恒温器)更多时间保持在“睡眠”模式。此外,所述 方法可有利地在适度花费的通常可用的数据服务平台实施。同样,在设备认证 方面,尽管所描述的方法可能有争议地引起一些理论漏洞,其可能导致一些未 授权的第三方智能设备享用远程服务所服务的权益(但是,重要地,不能访问 服务的合法消费者的敏感消费者数据),但是所描述的方法能够较好地促进对于 新的设备实际的现实世界的连接以及促进断开设备的重新连接,而用户的大量 的手动过程(例如,进入MAC地址、进行电话呼叫以重置密码等)。
在上述描述中给出了具体的细节以彻底地理解实施方式。然而,理解到, 实施方式可在没有这些具体的细节的情况下被实施。例如,为了不使不必要的 细节而模糊实施方式,可以框图示出电路。在其他例子中,为了避免使实施方 式模糊,众所周知的电路、方法、算法、结构和技术可在没有不必要的细节的 情况下被示出。
上文描述的技术、块、步骤和设备的实施可以各种方式来进行。例如,这 些技术、块、步骤和设备可以以硬件、软件或其组合实施。对于硬件实施,处 理单元可在一个或多个专用集成电路(ASIC)、数字信号处理器(DSP)、数字 信号处理设备(DSPD)、可编程逻辑设备(PLD)、现场可编程门阵列(FPGA)、 处理器、控制器、微控制器、微处理器、设计成执行上文描述的功能的其他电 子单元、和/或它们的组合中实施。
此外,注意到,实施方式可被描述为过程,其被描绘为流程图、作业图、 数据作业图、结构图、或者框图。尽管流程图可将操作描述为顺序的过程,但 是许多操作可并行地或者同时地执行。另外,操作的次序可重新布置。当其操 作完成时,过程被终止,但可能会有未包括在图中的额外的步骤。过程可对应 于方法、函数、程序、子程式、子程序等。当过程对应于函数时,过程的终止 对应于该函数返回至调用函数或者主函数。
此外,实施方式可通过硬件、软件、脚本语言、固件、中间件、微代码、 硬件描述语言和/或其组合来实施。当以软件、固件、中间件、脚本语言和/或微 代码实施时,用以执行必要任务的程序代码或代码段可被存储在诸如存储介质 的机器可读介质中。代码段或者机器可执行的指令可代表程序、函数、子程序、 程序、程式、子程式、模块、软件包、脚本、类、或者指令的任意组合、数据 结构、和/或程序语句。代码段可通过传送和/或接收信息、数据、变元、参数和 /或存储器内容而联接另一代码段或硬件电路。信息、变元、参数、数据等可借 助任何合适的方式(包括存储器共享、消息传送、令牌传送、网络传输等)被 传送、发送、或传输。
尽管本发明的原理结合具体的设备和方法在上文已经进行描述,但是很明 显地理解到,该描述仅仅作为示例且不作为对本教导的范围的限制。

Claims (25)

1.一种用于认证客户端设备以与远程服务器通信的方法,所述方法包括:
所述客户端设备使用第一设备凭证与第一远程服务器建立连接,所述第一设备凭证对于所述客户端设备是唯一的且被存储在所述客户端设备处以及认证所述客户端设备以与所述第一远程服务器通信;
在所述客户端设备处,获取来自所述第一远程服务器的第二设备凭证,所述第二设备凭证认证所述客户端设备以与第二远程服务器通信;
所述客户端设备使用所述第二设备凭证与所述第二远程服务器建立连接;
当与所述第二远程服务器的连接失败时:
所述客户端设备使用所述第一设备凭证与所述第一远程服务器重新建立连接;
在所述客户端设备处,重新获取来自所述第一远程服务器的所述第二设备凭证;和
所述客户端设备使用重新获取的第二设备凭证与所述第二远程服务器重新建立连接,
其中,重新获取的第二设备凭证包括设备标识符和由所述第一远程服务器生成的秘密,并且所述第二远程服务器使用所述设备标识符识别第二远程服务器存储的对应于客户端设备的秘密,并且比较所述第一远程服务器生成的秘密与第二远程服务器存储的秘密,当二者匹配时,客户端设备重新建立连接。
2.根据权利要求1所述的方法,其中,在重新获取来自所述第一远程服务器的所述第二设备凭证之前,所述客户端设备与用户账户配对,且所述方法还包括使所述客户端设备与所述用户账户重新配对。
3.根据权利要求1所述的方法,其中,只有在与所述第一远程服务器建立的连接为安全的连接时,才获取来自所述第一远程服务器的所述第二设备凭证。
4.根据权利要求1所述的方法,其中,所述第一设备凭证被硬编码到所述客户端设备中。
5.根据权利要求1所述的方法,其中,所述第一设备凭证包括设备标识符和由第三方生成的唯一秘密。
6.根据权利要求1所述的方法,还包括在所述第二设备凭证期满后,在所述客户端设备处,接收来自所述第二远程服务器的第三设备凭证,所述第三设备凭证认证所述客户端设备以与所述第二远程服务器通信。
7.根据权利要求1所述的方法,还包括当所述客户端设备与账户配对时,访问与所述客户端设备相关联的所述账户。
8.根据权利要求1所述的方法,还包括所述客户端设备使用所述第一设备凭证或所述第二设备凭证与第三远程服务器建立连接,其中,基于使用所述第一设备凭证还是使用所述第二设备凭证,对从所述客户端设备到所述第三远程服务器的数据通信进行分类。
9.根据权利要求8所述的方法,其中,还基于所述客户端设备是否与用户账户配对,对所述数据通信进行分类。
10.一种客户端设备,包括:
存储设备,所述存储设备用于存储第一设备凭证,所述第一设备凭证对于所述客户端设备是唯一的且可操作以认证所述客户端设备以与第一远程服务器通信;和
连接至所述存储设备的认证模块,所述认证模块可操作以:
使用所述第一设备凭证与所述第一远程服务器建立连接;
从所述第一远程服务器处获取第二设备凭证,所述第二设备凭证认证所述客户端设备以与第二远程服务器通信;
使用所述第二设备凭证与所述第二远程服务器建立连接;
当与所述第二远程服务器的连接失败时:
使用所述第一设备凭证与所述第一远程服务器重新建立连接;
从所述第一远程服务器处重新获取所述第二设备凭证;和
使用重新获取第二设备凭证与所述第二远程服务器重新建立连接,
其中,重新获取的第二设备凭证包括设备标识符和由所述第一远程服务器生成的秘密,并且所述第二远程服务器使用所述设备标识符识别第二远程服务器存储的对应于客户端设备的秘密,并且比较所述第一远程服务器生成的秘密与第二远程服务器存储的秘密,当二者匹配时,所述客户端设备重新建立连接。
11.根据权利要求10所述的客户端设备,其中,所述认证模块还可操作以:
在所述第二设备凭证期满后,从所述第二远程服务器处接收第三设备凭证,所述第三设备凭证认证所述客户端设备以与所述第二远程服务器通信。
12.根据权利要求10所述的客户端设备,其中,当所述客户端设备与账户配对时,所述认证模块还可操作以访问与所述客户端设备相关联的所述账户。
13.根据权利要求10所述的客户端设备,其中,所述认证模块还可操作以使用所述第一设备凭证或所述第二设备凭证与第三远程服务器建立连接,其中,基于使用所述第一设备凭证还是使用所述第二设备凭证,对从所述客户端设备到所述第三远程服务器的数据通信进行分类。
14.一种认证客户端设备的方法,所述方法包括:
在远程服务器处,接收来自所述客户端设备的第一设备凭证,所述第一设备凭证包括由第三方生成的对于所述客户端设备唯一的秘密;
确定所述第一设备凭证是否有效;和
当确定所述第一设备凭证有效时:
在所述远程服务器处,生成第二设备凭证,所述第二设备凭证可操作以认证所述客户端设备以与所述远程服务器的一个或多个部件通信;和
将所述第二设备凭证传送给所述客户端设备;
在所述远程服务器处,接收来自所述客户端设备的所述第二设备凭证;
当以所述第二设备凭证认证所述客户端设备失败时,在所述客户端设备处,重新获取来自所述远程服务器的第二设备凭证;
确定重新获取的第二设备凭证是否有效,其中,确定重新获取的第二设备凭证是否有效包括一个或多个操作,所述一个或多个操作包括:
将重新获取的第二设备凭证与最近生成的第二设备凭证比较;
当重新获取的第二设备凭证与最近生成的第二设备凭证匹配时,确定重新获取的第二设备凭证有效;
当重新获取的第二设备凭证与最近生成的第二设备凭证不匹配时,将重新获取的第二设备凭证与先前生成的第二设备凭证比较,所述先前生成的第二设备凭证在所述最近生成的第二设备凭证之前生成;和
当重新获取的第二设备凭证与先前生成的第二设备凭证匹配,确定重新获取的第二设备凭证有效;以及
当确定重新获取的第二设备凭证有效时,授权所述客户端设备访问在所述远程服务器处的安全资源。
15.根据权利要求14所述的方法,还包括:
确定与所述客户端设备的连接是否安全;和
当确定与所述客户端设备的所述连接不安全时,拒绝所述客户端设备访问所述远程服务器。
16.根据权利要求14所述的方法,还包括:
确定已经从所述客户端设备处传送第一设备凭证的速率是否超过预设速率;和
当确定已经从所述客户端设备处传送第一设备凭证的所述速率超过所述预设速率时,拒绝所述客户端设备访问所述远程服务器。
17.根据权利要求14所述的方法,还包括:
确定来自所述客户端设备的联系是初始联系还是后续联系;
当确定所述联系是后续联系时,确定所述客户端设备是否与用户账户配对;和
当确定所述客户端设备与用户账户配对时,取消所述客户端设备与所述用户账户配对。
18.根据权利要求14所述的方法,其中,确定所述第一设备凭证是否有效包括将所接收的第一设备凭证与在所述远程服务器处存储的设备凭证比较。
19.根据权利要求14所述的方法,其中,确定所述第一设备凭证是否有效包括将在所接收的第一设备凭证中包括的秘密的散列与在所述远程服务器处存储的秘密的散列比较。
20.根据权利要求14所述的方法,还包括:
确定所述第二设备凭证是否期满;和
当确定所述第二设备凭证期满时:
生成新的第二设备凭证;和
将所述新的第二设备凭证发送给所述客户端设备。
21.根据权利要求14所述的方法,还包括:
从所述客户端设备处接收所述第一设备凭证和所述第二设备凭证中的一者;
接收来自所述客户端设备的信息;和
基于从所述客户端设备处接收所述第一设备凭证还是所述第二设备凭证,对所述信息进行分类。
22.一种计算机系统,包括:
存储设备,所述存储设备用于存储用于客户端设备的设备凭证;以及
注册服务器,所述注册服务器连接至所述存储设备且可操作以:
从客户端设备处接收第一设备凭证,所述第一设备凭证包括由第三方生成的对于所述客户端设备唯一的秘密;
确定所述第一设备凭证是否有效;和
当确定所述第一设备凭证有效时:
生成第二设备凭证,所述第二设备凭证可操作以认证所述客户端设备以与所述计算机系统中的一个或多个部件通信;和
将所述第二设备凭证传送给所述客户端设备;
其中,所述注册服务器还可操作以:
确定来自所述客户端设备的联系是初始联系还是后续联系;
当确定所述联系是后续联系时,确定所述客户端设备是否与用户账户配对;
当确定所述客户端设备与用户账户配对时,取消所述客户端设备与所述用户账户配对;和
生成分配的第二设备凭证,并将分配的第二设备凭证发送给客户端设备。
23.根据权利要求22所述的计算机系统,其中,所述注册服务器还可操作以:
确定已经从所述客户端设备处传送第一设备凭证的速率是否超过预设速率;和
当确定已经从所述客户端设备处传送第一设备凭证的所述速率超过所述预设速率时,拒绝所述客户端设备访问所述注册服务器。
24.根据权利要求22所述的计算机系统,还包括与所述存储设备和所述注册服务器连接的同步服务器,所述同步服务器可操作以:
从所述客户端设备处接收所述第二设备凭证;
确定所述第二设备凭证是否有效;和
当确定所述第二设备凭证有效时,授权所述客户端设备访问安全资源。
25.根据权利要求22所述的计算机系统,还包括与所述存储设备和所述注册服务器连接的日志服务器,所述日志服务器可操作以:
从所述客户端设备处接收所述第一设备凭证和所述第二设备凭证中的一者;
接收来自所述客户端设备的信息;和
基于从所述客户端设备处接收所述第一设备凭证还是所述第二设备凭证,对所述信息进行分类。
CN201380061084.3A 2012-09-22 2013-09-20 促进智能家庭设备与基于云的服务器间通信的多层认证方法 Active CN105009131B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810946575.0A CN109005185B (zh) 2012-09-22 2013-09-20 促进智能家庭设备与基于云的服务器间通信的多层认证方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/624,893 2012-09-22
US13/624,893 US8539567B1 (en) 2012-09-22 2012-09-22 Multi-tiered authentication methods for facilitating communications amongst smart home devices and cloud-based servers
PCT/US2013/060818 WO2014047384A2 (en) 2012-09-22 2013-09-20 Multi-tiered authentication methods for facilitating communications amongst smart home devices and cloud-based servers

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201810946575.0A Division CN109005185B (zh) 2012-09-22 2013-09-20 促进智能家庭设备与基于云的服务器间通信的多层认证方法

Publications (2)

Publication Number Publication Date
CN105009131A CN105009131A (zh) 2015-10-28
CN105009131B true CN105009131B (zh) 2018-09-21

Family

ID=49122569

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201380061084.3A Active CN105009131B (zh) 2012-09-22 2013-09-20 促进智能家庭设备与基于云的服务器间通信的多层认证方法
CN201810946575.0A Active CN109005185B (zh) 2012-09-22 2013-09-20 促进智能家庭设备与基于云的服务器间通信的多层认证方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201810946575.0A Active CN109005185B (zh) 2012-09-22 2013-09-20 促进智能家庭设备与基于云的服务器间通信的多层认证方法

Country Status (7)

Country Link
US (3) US8539567B1 (zh)
EP (2) EP2907063B1 (zh)
JP (2) JP6321015B2 (zh)
CN (2) CN105009131B (zh)
AU (3) AU2013317935B2 (zh)
CA (1) CA2885220C (zh)
WO (1) WO2014047384A2 (zh)

Families Citing this family (233)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10277519B2 (en) 2006-01-31 2019-04-30 Silicon Laboratories Inc. Response time for a gateway connecting a lower bandwidth network with a higher speed network
US20150187209A1 (en) * 2006-01-31 2015-07-02 Sigma Designs, Inc. Method and system for synchronization and remote control of controlling units
US10326537B2 (en) 2006-01-31 2019-06-18 Silicon Laboratories Inc. Environmental change condition detection through antenna-based sensing of environmental change
BRPI1010658B1 (pt) 2009-06-02 2021-01-26 Schneider Electric USA, Inc. método implementado por computador para integração de múltiplos domínios de gerenciamento
US9544143B2 (en) 2010-03-03 2017-01-10 Duo Security, Inc. System and method of notifying mobile devices to complete transactions
US9532222B2 (en) 2010-03-03 2016-12-27 Duo Security, Inc. System and method of notifying mobile devices to complete transactions after additional agent verification
EP2386973A1 (en) * 2010-05-11 2011-11-16 Thomson Licensing Methods, devices and computer program supports for password generation and verification
US9100398B2 (en) * 2011-04-27 2015-08-04 International Business Machines Corporation Enhancing directory service authentication and authorization using contextual information
US9094400B2 (en) 2011-04-27 2015-07-28 International Business Machines Corporation Authentication in virtual private networks
US9467463B2 (en) 2011-09-02 2016-10-11 Duo Security, Inc. System and method for assessing vulnerability of a mobile device
US9524388B2 (en) 2011-10-07 2016-12-20 Duo Security, Inc. System and method for enforcing a policy for an authenticator device
JP2014534405A (ja) 2011-10-21 2014-12-18 ネスト・ラブズ・インコーポレイテッド ユーザフレンドリーな、ネットワーク接続された学習サーモスタットならびに関連するシステムおよび方法
JP2013130515A (ja) * 2011-12-22 2013-07-04 Sony Corp 情報処理装置、情報処理方法、及びプログラム
US8635373B1 (en) 2012-09-22 2014-01-21 Nest Labs, Inc. Subscription-Notification mechanisms for synchronization of distributed states
US9747000B2 (en) 2012-10-02 2017-08-29 Razer (Asia-Pacific) Pte. Ltd. Launching applications on an electronic device
US9717985B2 (en) 2012-10-02 2017-08-01 Razer (Asia-Pacific) Pte. Ltd. Fragment-based mobile device application streaming utilizing crowd-sourcing
US8977723B2 (en) 2012-10-02 2015-03-10 Nextbit Systems Inc. Cloud based application fragmentation
US9600552B2 (en) 2012-10-02 2017-03-21 Nextbit Systems Inc. Proximity based application state synchronization
US9112885B2 (en) 2012-10-02 2015-08-18 Nextbit Systems Inc. Interactive multi-tasker
US9654556B2 (en) 2012-10-02 2017-05-16 Razer (Asia-Pacific) Pte. Ltd. Managing applications on an electronic device
US10425471B2 (en) 2012-10-02 2019-09-24 Razer (Asia-Pacific) Pte. Ltd. Multi-tasker
US9268655B2 (en) 2012-10-02 2016-02-23 Nextbit Systems Inc. Interface for resolving synchronization conflicts of application states
US9210203B2 (en) 2012-10-02 2015-12-08 Nextbit Systems Inc. Resource based mobile device application streaming
US9776078B2 (en) 2012-10-02 2017-10-03 Razer (Asia-Pacific) Pte. Ltd. Application state backup and restoration across multiple devices
US9106721B2 (en) 2012-10-02 2015-08-11 Nextbit Systems Application state synchronization across multiple devices
US9787568B2 (en) * 2012-11-05 2017-10-10 Cercacor Laboratories, Inc. Physiological test credit method
US9336252B2 (en) * 2012-11-15 2016-05-10 International Business Machines Corporation Mobile application cache based on extreme scale technology
US9077759B2 (en) 2013-01-18 2015-07-07 Apple Inc. Conflict resolution for keychain syncing
US9197700B2 (en) * 2013-01-18 2015-11-24 Apple Inc. Keychain syncing
US9338156B2 (en) 2013-02-22 2016-05-10 Duo Security, Inc. System and method for integrating two-factor authentication in a device
US9443073B2 (en) * 2013-08-08 2016-09-13 Duo Security, Inc. System and method for verifying status of an authentication device
US9607156B2 (en) 2013-02-22 2017-03-28 Duo Security, Inc. System and method for patching a device through exploitation
US10123189B2 (en) 2013-03-21 2018-11-06 Razer (Asia-Pacific) Pte. Ltd. Electronic device system restoration by tapping mechanism
US8954611B2 (en) 2013-03-21 2015-02-10 Nextbit Systems Inc. Mechanism for sharing states of applications and devices across different user profiles
US10044799B2 (en) 2013-05-28 2018-08-07 International Business Machines Corporation Implementing synchronization of state information betweeen instances of an application as well as between different applications in an efficient, scalable manner
US9854035B2 (en) 2013-05-28 2017-12-26 International Business Machines Corporation Maintaining state synchronization of an application between computing devices as well as maintaining state synchronization of common information between different applications without requiring periodic synchronization
US20140375746A1 (en) * 2013-06-20 2014-12-25 Wavedeck Media Limited Platform, device and method for enabling micro video communication
US9531704B2 (en) 2013-06-25 2016-12-27 Google Inc. Efficient network layer for IPv6 protocol
US9112790B2 (en) 2013-06-25 2015-08-18 Google Inc. Fabric network
US9191209B2 (en) 2013-06-25 2015-11-17 Google Inc. Efficient communication for devices of a home network
US10447554B2 (en) 2013-06-26 2019-10-15 Qualcomm Incorporated User presence based control of remote communication with Internet of Things (IoT) devices
US9092302B2 (en) 2013-09-10 2015-07-28 Duo Security, Inc. System and method for determining component version compatibility across a device ecosystem
US9608814B2 (en) 2013-09-10 2017-03-28 Duo Security, Inc. System and method for centralized key distribution
WO2015044789A2 (en) * 2013-09-24 2015-04-02 Fibar Group sp. z o.o. Intelligent smoke sensor
US20160197765A1 (en) * 2013-09-27 2016-07-07 Hewlett Packard Enterprise Development Lp Forwarded log lines
USD768162S1 (en) 2013-09-30 2016-10-04 Nextbit Systems Inc. Display screen or portion thereof with graphical user interface
CN105794170B (zh) 2013-10-07 2019-11-15 谷歌有限责任公司 用于建立智能家庭装置与在线管理账户配对方法及系统
CA2926423C (en) * 2013-10-07 2022-05-24 Google Inc. Automated crowdsourced power outage identification and staggering of hvac system restarts
CA2926811C (en) * 2013-10-07 2023-03-21 Google Inc. Smart-home hazard detector providing context specific features and/or pre-alarm configurations
WO2015061715A1 (en) * 2013-10-24 2015-04-30 Internet Infrastructure Services Corporation Methods of dynamically securing electronic devices and other communications through environmental and system measurements leveraging tailored trustworthy spaces
US9774448B2 (en) 2013-10-30 2017-09-26 Duo Security, Inc. System and methods for opportunistic cryptographic key management on an electronic device
US9231951B2 (en) * 2013-11-01 2016-01-05 Google Inc. Probabilistically expedited secure connections via connection parameter reuse
DE102013222503A1 (de) * 2013-11-06 2015-05-07 Siemens Aktiengesellschaft Client-Einrichtung und Verfahren zum Prägen einer Client-Einrichtung auf mindestens eine Server-Einrichtung
CN104639419A (zh) * 2013-11-11 2015-05-20 比亚迪股份有限公司 汽车信息处理系统、方法和车载装置
CN103618706B (zh) * 2013-11-19 2018-11-02 深圳Tcl新技术有限公司 智能设备相互访问的控制系统及方法
US9203815B1 (en) * 2013-11-27 2015-12-01 Symantec Corporation Systems and methods for secure third-party data storage
US9900177B2 (en) 2013-12-11 2018-02-20 Echostar Technologies International Corporation Maintaining up-to-date home automation models
US9769522B2 (en) 2013-12-16 2017-09-19 Echostar Technologies L.L.C. Methods and systems for location specific operations
US11288346B1 (en) * 2014-03-03 2022-03-29 Charles Schwab & Co., Inc. System and method for authenticating users using weak authentication techniques, with differences for different features
US10637681B2 (en) 2014-03-13 2020-04-28 Silicon Laboratories Inc. Method and system for synchronization and remote control of controlling units
US9912690B2 (en) * 2014-04-08 2018-03-06 Capital One Financial Corporation System and method for malware detection using hashing techniques
US9998437B2 (en) * 2015-02-04 2018-06-12 Belkin International Inc. Key exchange through a trusted proxy
US10560975B2 (en) 2014-04-16 2020-02-11 Belkin International, Inc. Discovery of connected devices to determine control capabilities and meta-information
US10314088B2 (en) 2014-04-16 2019-06-04 Belkin International, Inc. Associating devices and users with a local area network using network identifiers
US9762590B2 (en) 2014-04-17 2017-09-12 Duo Security, Inc. System and method for an integrity focused authentication service
US20150319227A1 (en) * 2014-05-05 2015-11-05 Invensys Systems, Inc. Distributed historization system
US9413606B1 (en) 2014-05-07 2016-08-09 Dropbox, Inc. Automation of networked devices
CN104023052B (zh) * 2014-05-26 2017-08-01 李毅 智能家居无线控制系统及方法
JP6367375B2 (ja) * 2014-06-02 2018-08-01 アイデバイシーズ エルエルシー リンキングアドレスを用いたネットワーク上でのセキュア通信のためのシステムと方法
US9811654B2 (en) * 2014-06-11 2017-11-07 Dell Products L.P. Systems and methods for providing authentication using a managed input/output port
CN106462639B (zh) * 2014-06-24 2020-04-24 谷歌有限责任公司 处理远程数据库的变化
US11838851B1 (en) * 2014-07-15 2023-12-05 F5, Inc. Methods for managing L7 traffic classification and devices thereof
TWI539858B (zh) * 2014-08-22 2016-06-21 物聯智慧科技(深圳)有限公司 電子裝置與外部網路之連線設定方法及電子裝置
US9824578B2 (en) 2014-09-03 2017-11-21 Echostar Technologies International Corporation Home automation control using context sensitive menus
US9989507B2 (en) 2014-09-25 2018-06-05 Echostar Technologies International Corporation Detection and prevention of toxic gas
US9410712B2 (en) 2014-10-08 2016-08-09 Google Inc. Data management profile for a fabric network
US9835434B1 (en) 2014-10-13 2017-12-05 Google Inc. Home automation input interfaces based on a capacitive touchscreen for detecting patterns of conductive ink
US9977547B1 (en) 2014-10-13 2018-05-22 Google Llc Home automation input interfaces based on a capacitive touchscreen for detecting patterns of conductive ink
US9511259B2 (en) 2014-10-30 2016-12-06 Echostar Uk Holdings Limited Fitness overlay and incorporation for home automation system
US9983011B2 (en) 2014-10-30 2018-05-29 Echostar Technologies International Corporation Mapping and facilitating evacuation routes in emergency situations
CN107209745A (zh) * 2014-12-04 2017-09-26 惠普发展公司有限责任合伙企业 基于硬件标识符对基于网络的存储资源的访问
CN107005570B (zh) 2014-12-11 2020-12-18 比特梵德知识产权管理有限公司 用于网络端点的安全保护及远程管理的用户接口
AU2015361318B2 (en) * 2014-12-11 2019-09-26 Bitdefender Ipr Management Ltd Systems and methods for automatic device detection, device management, and remote assistance
US9641504B2 (en) * 2014-12-15 2017-05-02 Sap Se HTTP header-based adaptable authentication mechanism
US9967614B2 (en) 2014-12-29 2018-05-08 Echostar Technologies International Corporation Alert suspension for home automation system
US10593190B2 (en) * 2014-12-30 2020-03-17 Google Llc Systems and methods of providing status information in a smart home security detection system
US9763088B2 (en) * 2014-12-31 2017-09-12 Ruckus Wireless, Inc. Mesh network with personal pre-shared keys
US9979719B2 (en) 2015-01-06 2018-05-22 Duo Security, Inc. System and method for converting one-time passcodes to app-based authentication
US10168065B2 (en) * 2015-01-19 2019-01-01 Lennox Industries Inc. Diagnosing and troubleshooting a heating, ventilation, and air conditioning system
US20160217674A1 (en) 2015-01-26 2016-07-28 Trane International Inc. Remote monitoring of an hvac system for fault detection and diagnostics
US10021213B2 (en) * 2015-02-09 2018-07-10 Google Llc Systems and methods for adaptive cloning of mobile devices
US9722987B2 (en) * 2015-03-13 2017-08-01 Ssh Communications Security Oyj Access relationships in a computer system
KR20160111220A (ko) * 2015-03-16 2016-09-26 엘지전자 주식회사 전기제품, 전기제품의 펌웨어 업데이트 방법 및 네트워크 시스템
EP3275127B1 (en) * 2015-03-26 2020-10-21 Signify Holding B.V. Mapping devices to representations in a model
US9755922B2 (en) * 2015-03-26 2017-09-05 Ca, Inc. Minimized installation of point of presence software agents by use of pre-installed browser
US9729989B2 (en) 2015-03-27 2017-08-08 Echostar Technologies L.L.C. Home automation sound detection and positioning
US9641341B2 (en) 2015-03-31 2017-05-02 Duo Security, Inc. Method for distributed trust authentication
US10728700B2 (en) * 2015-04-15 2020-07-28 Sugarcrm Inc. Privacy assurance in location based services
US9948477B2 (en) 2015-05-12 2018-04-17 Echostar Technologies International Corporation Home automation weather detection
US9946857B2 (en) * 2015-05-12 2018-04-17 Echostar Technologies International Corporation Restricted access for home automation system
US9930060B2 (en) 2015-06-01 2018-03-27 Duo Security, Inc. Method for enforcing endpoint health standards
US9819670B2 (en) 2015-06-18 2017-11-14 Airwatch Llc Distributing security codes through a restricted communications channel
US20160379220A1 (en) * 2015-06-23 2016-12-29 NXT-ID, Inc. Multi-Instance Shared Authentication (MISA) Method and System Prior to Data Access
US9843572B2 (en) * 2015-06-29 2017-12-12 Airwatch Llc Distributing an authentication key to an application installation
US10419422B2 (en) 2015-07-06 2019-09-17 Apple Inc. Combined authorization process
US11444766B2 (en) 2015-07-06 2022-09-13 Apple Inc. Combined authorization process
US10270597B2 (en) 2015-07-06 2019-04-23 Apple Inc. Combined authorization process
US10728043B2 (en) * 2015-07-21 2020-07-28 Entrust, Inc. Method and apparatus for providing secure communication among constrained devices
US9774579B2 (en) 2015-07-27 2017-09-26 Duo Security, Inc. Method for key rotation
US10104084B2 (en) * 2015-07-30 2018-10-16 Cisco Technology, Inc. Token scope reduction
GB2540957B (en) * 2015-07-31 2019-12-25 Arm Ip Ltd Managing interaction constraints
US9960980B2 (en) 2015-08-21 2018-05-01 Echostar Technologies International Corporation Location monitor and device cloning
US10425414B1 (en) * 2015-08-31 2019-09-24 United Services Automobile Association (Usaa) Security platform
US11816672B1 (en) 2015-09-22 2023-11-14 Wells Fargo Bank, N.A. Flexible authentication
US11122041B2 (en) * 2015-09-25 2021-09-14 Siemens Industry, Inc. System and method for location-based credentialing
US10015248B1 (en) * 2015-09-28 2018-07-03 Amazon Technologies, Inc. Syncronizing changes to stored data among multiple client devices
CN105357262B (zh) 2015-09-29 2019-07-23 小米科技有限责任公司 设备控制方法及装置
US10791208B2 (en) 2015-10-23 2020-09-29 Traeger Pellet Grills, Llc Mobile application for controlling outdoor grill
AU2016329040B2 (en) 2015-10-23 2021-07-29 Traeger Pellet Grills, Llc Cloud system for controlling outdoor grill with mobile application
US10701199B2 (en) 2015-10-23 2020-06-30 Traeger Pellet Grills, Llc Cloud system for controlling outdoor grill with mobile application
US11765261B2 (en) 2015-10-23 2023-09-19 Traeger Pellet Grills, LLC. Mobile application for controlling outdoor grill
US10708409B2 (en) 2015-10-23 2020-07-07 Traeger Pellet Grills, Llc Mobile application for controlling outdoor grill
US10491738B2 (en) 2015-10-23 2019-11-26 Traeger Pellet Grills, Llc Cloud system for controlling outdoor grill with mobile application
US10757244B2 (en) 2015-10-23 2020-08-25 Traeger Pellet Grills, Llc Cloud system for controlling outdoor grill with mobile application
JP7065612B2 (ja) 2015-10-23 2022-05-12 トレガー・ペレット・グリルズ,エルエルシー 野外用グリルを制御するためのモバイル・アプリケーション
US10785363B2 (en) 2015-10-23 2020-09-22 Traeger Pellet Grills, Llc Cloud system for controlling outdoor grill with mobile application
US10455022B2 (en) 2015-10-23 2019-10-22 Traeger Pellet Grills, Llc Cloud system for controlling outdoor grill with mobile application
US10735575B2 (en) 2015-10-23 2020-08-04 Traeger Pellet Grills, Llc Mobile application for controlling outdoor grill
CA2941277C (en) 2015-10-23 2023-10-03 Traeger Pellet Grills, Llc Smoke generation cooking system and methods
US10528021B2 (en) 2015-10-30 2020-01-07 Rockwell Automation Technologies, Inc. Automated creation of industrial dashboards and widgets
US9996066B2 (en) 2015-11-25 2018-06-12 Echostar Technologies International Corporation System and method for HVAC health monitoring using a television receiver
CN105426212B (zh) * 2015-11-30 2021-12-24 青岛海尔智能家电科技有限公司 虚拟设备组成动态更新方法及装置
US10101717B2 (en) 2015-12-15 2018-10-16 Echostar Technologies International Corporation Home automation data storage system and methods
US10198595B2 (en) * 2015-12-22 2019-02-05 Walmart Apollo, Llc Data breach detection system
CN105425605A (zh) * 2015-12-22 2016-03-23 小米科技有限责任公司 智能家电设备接入多个服务器的方法、装置及系统
US20210165380A1 (en) * 2015-12-22 2021-06-03 Xiaomi Inc. Method, device and system for intelligent household appliance to access multiple servers
US10091017B2 (en) 2015-12-30 2018-10-02 Echostar Technologies International Corporation Personalized home automation control based on individualized profiling
US10073428B2 (en) 2015-12-31 2018-09-11 Echostar Technologies International Corporation Methods and systems for control of home automation activity based on user characteristics
US10060644B2 (en) 2015-12-31 2018-08-28 Echostar Technologies International Corporation Methods and systems for control of home automation activity based on user preferences
US10313281B2 (en) * 2016-01-04 2019-06-04 Rockwell Automation Technologies, Inc. Delivery of automated notifications by an industrial asset
GB201600447D0 (en) * 2016-01-11 2016-02-24 Osirium Ltd Password recovery
KR102403117B1 (ko) * 2016-02-22 2022-05-27 삼성전자주식회사 동글 및 그의 제어 방법
US10230522B1 (en) * 2016-03-24 2019-03-12 Amazon Technologies, Inc. Network access control
US10353887B1 (en) * 2016-03-24 2019-07-16 Amazon Technologies, Inc. Concurrent record updating with mitigation of contention
CN105744038B (zh) * 2016-03-29 2019-07-02 北京小米移动软件有限公司 状态同步方法及装置
CN107295603A (zh) * 2016-03-30 2017-10-24 中兴通讯股份有限公司 一种终端控制方法及装置
US10149160B2 (en) 2016-05-11 2018-12-04 Bank Of America Corporation Recognizing and authenticating mobile devices based on unique cross-channel bindings
CN105871671B (zh) * 2016-05-31 2020-03-03 北京小米移动软件有限公司 控制、获取智能家居设备上传数据的方法及装置
CN107465644B (zh) * 2016-06-03 2021-02-23 中兴通讯股份有限公司 数据传输方法、数据传送客户端及数据传送执行器
US9882736B2 (en) 2016-06-09 2018-01-30 Echostar Technologies International Corporation Remote sound generation for a home automation system
CN105915566A (zh) * 2016-07-06 2016-08-31 杨炳 用于实时账户访问的安全系统
CN106230902B (zh) * 2016-07-22 2019-10-11 深圳创维数字技术有限公司 一种模块化家庭云系统及其控制方法
US10294600B2 (en) 2016-08-05 2019-05-21 Echostar Technologies International Corporation Remote detection of washer/dryer operation/fault condition
US10318570B2 (en) 2016-08-18 2019-06-11 Rockwell Automation Technologies, Inc. Multimodal search input for an industrial search platform
US10049515B2 (en) 2016-08-24 2018-08-14 Echostar Technologies International Corporation Trusted user identification and management for home automation systems
US10401839B2 (en) 2016-09-26 2019-09-03 Rockwell Automation Technologies, Inc. Workflow tracking and identification using an industrial monitoring system
US10319128B2 (en) 2016-09-26 2019-06-11 Rockwell Automation Technologies, Inc. Augmented reality presentation of an industrial environment
US10545492B2 (en) 2016-09-26 2020-01-28 Rockwell Automation Technologies, Inc. Selective online and offline access to searchable industrial automation data
CN107872490B (zh) * 2016-09-28 2020-11-03 北京京东尚科信息技术有限公司 智能电器及在其与云端之间实现业务数据一致性的方法
US10218690B2 (en) * 2016-10-17 2019-02-26 International Business Machines Corporation Abstracting an authentication sequence using HTTP
GB201617620D0 (en) * 2016-10-18 2016-11-30 Cybernetica As Composite digital signatures
KR102034528B1 (ko) * 2016-11-07 2019-10-21 한국전자통신연구원 다중 채널 기반 데이터 송수신 방법 및 장치
US10735691B2 (en) 2016-11-08 2020-08-04 Rockwell Automation Technologies, Inc. Virtual reality and augmented reality for industrial automation
US10388075B2 (en) 2016-11-08 2019-08-20 Rockwell Automation Technologies, Inc. Virtual reality and augmented reality for industrial automation
US10866631B2 (en) 2016-11-09 2020-12-15 Rockwell Automation Technologies, Inc. Methods, systems, apparatuses, and techniques for employing augmented reality and virtual reality
US10362481B2 (en) * 2016-11-15 2019-07-23 International Business Machines Corporation Multi-tiered user authentication methods
US10462152B2 (en) * 2016-11-15 2019-10-29 Microsoft Technology Licensing, Llc Systems and methods for managing credentials used to authenticate access in data processing systems
US10382203B1 (en) * 2016-11-22 2019-08-13 Amazon Technologies, Inc. Associating applications with Internet-of-things (IoT) devices using three-way handshake
US10637673B2 (en) 2016-12-12 2020-04-28 Silicon Laboratories Inc. Energy harvesting nodes in a mesh network
US10742629B2 (en) 2017-02-28 2020-08-11 International Business Machines Corporation Efficient cloud resource protection
US11166233B2 (en) 2017-03-02 2021-11-02 Carrier Corporation Wireless communication system and method of managing energy consumption of a wireless device
CN106921663B (zh) * 2017-03-03 2020-04-10 浙江智贝信息科技有限公司 基于智能终端软件/智能终端的身份持续认证系统及方法
US10320800B2 (en) * 2017-03-13 2019-06-11 International Business Machines Corporation Fraud detection mechanism
US10134207B2 (en) * 2017-04-20 2018-11-20 Saudi Arabian Oil Company Securing SCADA network access from a remote terminal unit
KR102340637B1 (ko) * 2017-05-12 2021-12-20 엔에이치엔 주식회사 모바일 클라우드 시스템 및 그 동작 방법
FR3067893A1 (fr) 2017-06-14 2018-12-21 Overkiz Procede de configuration d’un dispositif domotique appartenant a une installation domotique
FR3067895A1 (fr) * 2017-06-14 2018-12-21 Overkiz Procede de configuration d’une unite centrale de commande appartenant a une installation domotique
CN111903108A (zh) * 2017-09-29 2020-11-06 交互数字Ce专利控股公司 启用智能网关的低成本智能建筑物解决方案
US10467424B2 (en) 2017-10-12 2019-11-05 International Business Machines Corporation File system content based security
US10445944B2 (en) 2017-11-13 2019-10-15 Rockwell Automation Technologies, Inc. Augmented reality safety automation zone system and method
US10412113B2 (en) 2017-12-08 2019-09-10 Duo Security, Inc. Systems and methods for intelligently configuring computer security
US10637856B2 (en) * 2017-12-12 2020-04-28 Abb Power Grids Switzerland Ag Wireless router deployment
US10989427B2 (en) 2017-12-20 2021-04-27 Trane International Inc. HVAC system including smart diagnostic capabilites
CN108400964A (zh) * 2017-12-26 2018-08-14 聚光科技(杭州)股份有限公司 设备间加密连接方法
US10763144B2 (en) * 2018-03-01 2020-09-01 Verity Instruments, Inc. Adaptable-modular optical sensor based process control system, and method of operation thereof
US11317286B2 (en) 2018-03-21 2022-04-26 At&T Intellectual Property I, L.P. Network authentication via encrypted network access packages
DE102018003525A1 (de) 2018-05-02 2019-11-07 Truma Gerätetechnik GmbH & Co. KG Verfahren zum Zurücksetzen eines Geräts sowie Gerät und Steuereinheit
CN108881030B (zh) * 2018-06-07 2022-02-25 腾讯科技(深圳)有限公司 灰度发布场景下的路由方法及装置
US11144620B2 (en) * 2018-06-26 2021-10-12 Counseling and Development, Inc. Systems and methods for establishing connections in a network following secure verification of interested parties
US10484770B1 (en) 2018-06-26 2019-11-19 Amazon Technologies, Inc. Display device with transverse planar microphone arrays
GB2575266A (en) 2018-07-03 2020-01-08 Osirium Ltd A password management system and method for providing access to a password protected device
JP7073952B2 (ja) 2018-07-09 2022-05-24 横河電機株式会社 データ収集システム及びデータ収集方法
US11481509B1 (en) 2018-07-10 2022-10-25 United Services Automobile Association (Usaa) Device management and security through a distributed ledger system
US20220286446A1 (en) * 2018-08-16 2022-09-08 Cyberark Software Ltd. Authentication credential with embedded authentication information
US10944758B1 (en) * 2018-09-28 2021-03-09 Amazon Technologies, Inc. Computer resource vulnerability assessment and remediation
US11005845B2 (en) 2018-10-18 2021-05-11 International Business Machines Corporation, Armonk, Ny Network device validation and management
US10900687B2 (en) 2018-10-31 2021-01-26 Trane International Inc. Flexible scheduling HVAC graphical user interface and methods of use thereof
US11658962B2 (en) 2018-12-07 2023-05-23 Cisco Technology, Inc. Systems and methods of push-based verification of a transaction
US11316144B1 (en) 2018-12-13 2022-04-26 Amazon Technologies, Inc. Lithium-ion batteries with solid electrolyte membranes
FR3091134B1 (fr) * 2018-12-21 2021-11-05 Schneider Electric Ind Sas Dispositifs et procédés pour l’appariement entre un dispositif de commande sans fil et un appareil électronique
CN111478844B (zh) * 2019-01-24 2021-12-17 苏州触达信息技术有限公司 一种基于超声的vpn通信系统、方法和计算机可读存储介质
US11627049B2 (en) * 2019-01-31 2023-04-11 Hewlett Packard Enterprise Development Lp Failsafe firmware upgrade for cloud-managed devices
JP6888037B2 (ja) * 2019-01-31 2021-06-16 キヤノン株式会社 情報処理装置、制御方法およびプログラム
US10897398B2 (en) 2019-02-04 2021-01-19 Saudi Arabian Oil Company Embedded dynamic configuration assignment for unprotected remote terminal unit (RTU)
US11288378B2 (en) 2019-02-20 2022-03-29 Saudi Arabian Oil Company Embedded data protection and forensics for physically unsecure remote terminal unit (RTU)
US11494505B2 (en) 2019-03-21 2022-11-08 Microsoft Technology Licensing, Llc Hiding secure area of a file storage system based on client indication
CN110071926B (zh) * 2019-04-26 2021-07-30 秒针信息技术有限公司 一种数据处理方法及装置
US20200382467A1 (en) * 2019-05-29 2020-12-03 Mastercard International Incorporated System with purpose-specific identifiers for virtual network interface card
US20210042398A1 (en) * 2019-08-08 2021-02-11 Pulsepoint, Inc. Validation of Properties of a User Device in a Network
US11520746B2 (en) * 2019-08-12 2022-12-06 International Business Machines Corporation Apparatus, systems, and methods for accelerated replication of file metadata on different sites
SE545872C2 (en) * 2019-09-27 2024-02-27 No Common Payment Ab Generation and verification of a temporary authentication value for use in a secure transmission
US10812600B1 (en) * 2019-11-28 2020-10-20 International Business Machines Corporation Enforcing session properties compliance for gateway connected publish-subscribe clients
JP7287569B2 (ja) * 2020-03-11 2023-06-06 日本電気株式会社 通信装置、データ記録方法、及びプログラム
US11483312B2 (en) * 2020-03-31 2022-10-25 LendingClub Bank, National Association Conditionally-deferred authentication steps for tiered authentication
US11522867B2 (en) 2020-03-31 2022-12-06 LendingClub Bank, National Association Secure content management through authentication
US11038966B1 (en) 2020-04-28 2021-06-15 Arm Ip Limited Remote device operation
WO2021243565A1 (en) * 2020-06-02 2021-12-09 Citrix Systems, Inc. Dynamic recommendation engine
US11341830B2 (en) 2020-08-06 2022-05-24 Saudi Arabian Oil Company Infrastructure construction digital integrated twin (ICDIT)
US20220231858A1 (en) * 2021-01-15 2022-07-21 Micron Technology, Inc. Control of Memory Devices over Computer Networks
US11805112B2 (en) * 2021-02-08 2023-10-31 Cisco Technology, Inc. Enhanced multi-factor authentication based on physical and logical proximity to trusted devices and users
US11687053B2 (en) 2021-03-08 2023-06-27 Saudi Arabian Oil Company Intelligent safety motor control center (ISMCC)
CN113109643B (zh) * 2021-03-10 2022-09-30 青岛海信智慧生活科技股份有限公司 一种智能门锁的自动测试方法及装置
EP4080848B1 (en) * 2021-04-22 2024-01-17 ABB Schweiz AG Method and system for synchronizing configuration data in a plant
US11785012B2 (en) 2021-06-07 2023-10-10 Bank Of America Corporation Data processing for internet of things (IoT) devices based on recorded user behavior
US20220415493A1 (en) * 2021-06-28 2022-12-29 Hill-Rom Services, Inc. Remote diagnostics for patient beds
CN113438314B (zh) * 2021-06-29 2023-10-24 青岛海尔科技有限公司 一种设备控制方法、装置、存储介质及电子装置
CN115603928A (zh) * 2021-07-07 2023-01-13 花瓣云科技有限公司(Cn) 一种跨设备数据操作方法及系统
CN113630402B (zh) * 2021-07-29 2023-04-18 深圳市商汤科技有限公司 协议自适应方法及装置、平台、存储介质
US12001576B2 (en) * 2021-08-10 2024-06-04 Keross Fz-Llc Extensible platform for orchestration of data with enhanced security
CN114143196B (zh) * 2021-11-25 2023-07-28 北京百度网讯科技有限公司 实例配置更新方法、装置、设备、存储介质及程序产品
US12024985B2 (en) 2022-03-24 2024-07-02 Saudi Arabian Oil Company Selective inflow control device, system, and method
US20230397269A1 (en) * 2022-06-05 2023-12-07 Apple Inc. Prioritized resident electronic device in home
US11863390B1 (en) * 2022-08-16 2024-01-02 Nvidia Corporation Path attestation for computing resources

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1592197A (zh) * 2003-09-01 2005-03-09 台均实业有限公司 用户端设备与本地客户端应用或远程网络服务间鉴权的方法
CN101336536A (zh) * 2005-12-01 2008-12-31 高通股份有限公司 用于支持不同认证凭证的方法和装置
CN101926161A (zh) * 2008-01-25 2010-12-22 三星电子株式会社 家庭网络中处理事件的方法和设备
CN101965574A (zh) * 2008-03-04 2011-02-02 日本电信电话株式会社 认证信息生成系统、认证信息生成方法、客户机装置以及安装了该方法的认证信息生成程序
US8453222B1 (en) * 2010-08-20 2013-05-28 Symantec Corporation Possession of synchronized data as authentication factor in online services

Family Cites Families (109)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0498780A (ja) 1990-08-16 1992-03-31 Nec Corp Icソケット
US5224648A (en) 1992-03-27 1993-07-06 American Standard Inc. Two-way wireless HVAC system and thermostat
JPH09298780A (ja) 1996-05-07 1997-11-18 Yamatake Honeywell Co Ltd ワイヤレス受信装置
US6072784A (en) 1997-07-25 2000-06-06 At&T Corp. CDMA mobile station wireless transmission power management with adaptive scheduling priorities based on battery power level
US6119230A (en) 1997-10-01 2000-09-12 Novell, Inc. Distributed dynamic security capabilities
US6798341B1 (en) 1998-05-18 2004-09-28 Leviton Manufacturing Co., Inc. Network based multiple sensor and control device with temperature sensing and control
US6891838B1 (en) 1998-06-22 2005-05-10 Statsignal Ipc, Llc System and method for monitoring and controlling residential devices
US6363422B1 (en) 1998-06-24 2002-03-26 Robert R. Hunter Multi-capability facilities monitoring and control intranet for facilities management system
US6950534B2 (en) 1998-08-10 2005-09-27 Cybernet Systems Corporation Gesture-controlled interfaces for self-service machines and other applications
US6098893A (en) 1998-10-22 2000-08-08 Honeywell Inc. Comfort control system incorporating weather forecast data and a method for operating such a system
US20040095237A1 (en) 1999-01-09 2004-05-20 Chen Kimball C. Electronic message delivery system utilizable in the monitoring and control of remote equipment and method of same
JP4393739B2 (ja) * 1999-08-02 2010-01-06 ソフトバンクBb株式会社 電子決済システム、決済装置及び端末
US6453687B2 (en) 2000-01-07 2002-09-24 Robertshaw Controls Company Refrigeration monitor unit
US6519509B1 (en) 2000-06-22 2003-02-11 Stonewater Software, Inc. System and method for monitoring and controlling energy distribution
US6513723B1 (en) 2000-09-28 2003-02-04 Emerson Electric Co. Method and apparatus for automatically transmitting temperature information to a thermostat
US6909921B1 (en) 2000-10-19 2005-06-21 Destiny Networks, Inc. Occupancy sensor and method for home automation system
US6993417B2 (en) 2001-09-10 2006-01-31 Osann Jr Robert System for energy sensing analysis and feedback
JP2003110576A (ja) * 2001-09-26 2003-04-11 Toshiba Corp 無線ネットワークシステム、無線ネットワークの管理方法、及び、コンピュータで実行可能な無線ネットワークの管理プログラム
US20050187867A1 (en) 2002-01-03 2005-08-25 Sokolic Jeremy N. System and method for associating identifiers with transactions
US7941533B2 (en) * 2002-02-19 2011-05-10 Jpmorgan Chase Bank, N.A. System and method for single sign-on session management without central server
US6619055B1 (en) 2002-03-20 2003-09-16 Honeywell International Inc. Security system with wireless thermostat and method of operation thereof
GB2386713B (en) * 2002-03-22 2005-08-31 Hewlett Packard Co Apparatus for distributed access control
JP2003296277A (ja) * 2002-03-29 2003-10-17 Fuji Xerox Co Ltd ネットワーク装置、認証サーバ、ネットワークシステム、認証方法
US7471062B2 (en) 2002-06-12 2008-12-30 Koninklijke Philips Electronics N.V. Wireless battery charging
US6954862B2 (en) * 2002-08-27 2005-10-11 Michael Lawrence Serpa System and method for user authentication with enhanced passwords
US20040078341A1 (en) * 2002-10-15 2004-04-22 Steichen Terril John System and method for selling digital information online
HK1052830A2 (en) 2003-02-26 2003-09-05 Intexact Technologies Ltd An integrated programmable system for controlling the operation of electrical and/or electronic appliances of a premises
JP2004318377A (ja) * 2003-04-15 2004-11-11 Matsushita Electric Ind Co Ltd 情報機器および設定サーバー
JP4611680B2 (ja) * 2003-07-25 2011-01-12 株式会社リコー 通信装置、通信システム、通信方法及びプログラム
US20070043478A1 (en) 2003-07-28 2007-02-22 Ehlers Gregory A System and method of controlling an HVAC system
US7055759B2 (en) 2003-08-18 2006-06-06 Honeywell International Inc. PDA configuration of thermostats
US6851621B1 (en) 2003-08-18 2005-02-08 Honeywell International Inc. PDA diagnosis of thermostats
US7702424B2 (en) 2003-08-20 2010-04-20 Cannon Technologies, Inc. Utility load control management communications protocol
US20050270151A1 (en) 2003-08-22 2005-12-08 Honeywell International, Inc. RF interconnected HVAC system and security system
US20050053063A1 (en) 2003-09-04 2005-03-10 Sajeev Madhavan Automatic provisioning of network address translation data
US7289887B2 (en) 2003-09-08 2007-10-30 Smartsynch, Inc. Systems and methods for remote power management using IEEE 802 based wireless communication links
US20050055432A1 (en) 2003-09-08 2005-03-10 Smart Synch, Inc. Systems and methods for remote power management using 802.11 wireless protocols
US20050125083A1 (en) 2003-11-10 2005-06-09 Kiko Frederick J. Automation apparatus and methods
US7135965B2 (en) 2004-01-08 2006-11-14 Maple Chase Company Hazardous condition detection system and method and thermostat for use therewith
US7469550B2 (en) 2004-01-08 2008-12-30 Robertshaw Controls Company System and method for controlling appliances and thermostat for use therewith
US20050194456A1 (en) 2004-03-02 2005-09-08 Tessier Patrick C. Wireless controller with gateway
US20070294336A1 (en) * 2004-07-02 2007-12-20 Greg Pounds Proxy-based communications architecture
US7996881B1 (en) * 2004-11-12 2011-08-09 Aol Inc. Modifying a user account during an authentication process
US7537171B2 (en) 2004-11-17 2009-05-26 Emerson Electric Co. Thermostat control system providing power saving transmissions
US6990335B1 (en) 2004-11-18 2006-01-24 Charles G. Shamoon Ubiquitous connectivity and control system for remote locations
AU2005309571A1 (en) 2004-11-23 2006-06-01 S. C. Johnson & Son, Inc. Device and methods of providing air purification in combination with cleaning of surfaces
US20060147003A1 (en) 2004-12-30 2006-07-06 Carrier Corporation Remote telephone access control of multiple home comfort systems
US7735118B2 (en) 2005-02-07 2010-06-08 Alcatel-Lucent Usa Inc. Method and apparatus for preventing bridging of secure networks and insecure networks
WO2006101472A1 (en) 2005-03-15 2006-09-28 Chubb International Holdings Limited Context-aware alarm system
US20070038787A1 (en) 2005-03-30 2007-02-15 Logitech Europe S.A. Interface device and method for networking legacy consumer electronics devices
US7434742B2 (en) 2005-06-20 2008-10-14 Emerson Electric Co. Thermostat capable of displaying received information
US20070114295A1 (en) 2005-11-22 2007-05-24 Robertshaw Controls Company Wireless thermostat
US20070130474A1 (en) * 2005-12-05 2007-06-07 Tri-D Systems, Inc. Creating multiple one-time passcodes
US8234694B2 (en) 2005-12-09 2012-07-31 Oracle International Corporation Method and apparatus for re-establishing communication between a client and a server
EP1811421A1 (en) * 2005-12-29 2007-07-25 AXSionics AG Security token and method for authentication of a user with the security token
US20070174901A1 (en) * 2006-01-20 2007-07-26 Chang David Y System and method for automatic wireless network password update
US20070220598A1 (en) * 2006-03-06 2007-09-20 Cisco Systems, Inc. Proactive credential distribution
FI120480B (fi) * 2006-05-15 2009-10-30 Software Cellular Network Ltd Menetelmä ja järjestelmä käyttäjälaitteen konfiguroimiseksi
US7580775B2 (en) 2006-07-11 2009-08-25 Regen Energy Inc. Method and apparatus for implementing enablement state decision for energy consuming load based on demand and duty cycle of load
US8559947B2 (en) * 2006-09-13 2013-10-15 Mformation Software Technologies Llc System and method to enable subscriber self-activation of wireless data terminals
US7571865B2 (en) 2006-10-31 2009-08-11 Tonerhead, Inc. Wireless temperature control system
KR100856871B1 (ko) 2006-12-27 2008-09-04 주식회사 맥스포 유비쿼터스 홈 네트워크 시스템
US7904209B2 (en) 2007-03-01 2011-03-08 Syracuse University Open web services-based indoor climate control system
US8220721B2 (en) 2007-03-01 2012-07-17 Flohr Daniel P Wireless interface circuits for wired thermostats and electrical service demand management
US8037022B2 (en) 2007-06-05 2011-10-11 Samsung Electroncis Co., Ltd. Synchronizing content between content directory service and control point
US8205081B2 (en) * 2007-06-09 2012-06-19 Apple Inc. Systems and methods for verifying the authenticity of a remote device
US7975292B2 (en) 2007-06-12 2011-07-05 Francisco Corella Secure password reset for application
US8046827B2 (en) * 2007-06-12 2011-10-25 Francisco Corella Access control of interaction context of application
US7774102B2 (en) 2007-06-22 2010-08-10 Emerson Electric Co. System including interactive controllers for controlling operation of climate control system
US20110239287A1 (en) * 2007-08-10 2011-09-29 Lg Electronics Inc. Method for sharing content
US8196185B2 (en) 2007-08-27 2012-06-05 Honeywell International Inc. Remote HVAC control with a customizable overview display
EP2183836A2 (en) * 2007-09-19 2010-05-12 Briggs and Stratton Corporation Method of monitoring a standby generator and system therefor
US8214291B2 (en) * 2007-10-19 2012-07-03 Ebay Inc. Unified identity verification
US8346396B2 (en) 2007-11-30 2013-01-01 Honeywell International Inc. HVAC controller with parameter clustering
US8365245B2 (en) * 2008-02-19 2013-01-29 International Business Machines Corporation Previous password based authentication
US20090288138A1 (en) * 2008-05-19 2009-11-19 Dimitris Kalofonos Methods, systems, and apparatus for peer-to peer authentication
US7979899B2 (en) * 2008-06-02 2011-07-12 Microsoft Corporation Trusted device-specific authentication
JP5058088B2 (ja) * 2008-07-14 2012-10-24 日本電信電話株式会社 サービスコンポーネントの擾乱防止方法、およびサービスコンポーネントの擾乱制御装置
US20100058450A1 (en) 2008-08-28 2010-03-04 Gene Fein Pass code provision
US8543244B2 (en) 2008-12-19 2013-09-24 Oliver Joe Keeling Heating and cooling control methods and systems
JP2010146452A (ja) * 2008-12-22 2010-07-01 Nec Corp メンバー登録方法、コミュニティサービスシステム、携帯端末、及びメンバー招待処理プログラム
KR20100072847A (ko) 2008-12-22 2010-07-01 한국전자통신연구원 차량 입출고를 기반으로 한 디지털 가전기기 제어 장치 및 방법
US8505078B2 (en) * 2008-12-28 2013-08-06 Qualcomm Incorporated Apparatus and methods for providing authorized device access
EP2370748B1 (en) 2008-12-30 2017-01-11 Zoner Llc Automatically balancing register for hvac systems
US8510811B2 (en) 2009-02-03 2013-08-13 InBay Technologies, Inc. Network transaction verification and authentication
EP2485453B1 (en) * 2009-02-19 2016-04-20 SecureKey Technologies Inc. Method for online authentication
USD614976S1 (en) 2009-03-06 2010-05-04 Danfoss A/S Wireless thermostat with dial and display
JPWO2010116404A1 (ja) * 2009-03-30 2012-10-11 富士通株式会社 アクセス認証方法及び情報処理装置
US8086233B2 (en) * 2009-03-31 2011-12-27 Cisco Technology, Inc. Detecting cloning of network devices
US8498753B2 (en) 2009-05-08 2013-07-30 Ecofactor, Inc. System, method and apparatus for just-in-time conditioning using a thermostat
US8763104B2 (en) * 2009-08-27 2014-06-24 International Business Machines Corporation Establishing and maintaining an improved Single Sign-on (SSO) facility
US9003387B2 (en) 2009-09-25 2015-04-07 Fisher-Rosemount Systems, Inc. Automated deployment of computer-specific software updates
WO2011063014A1 (en) 2009-11-17 2011-05-26 Secureauth Corporation Single sign on with multiple authentication factors
US20110137991A1 (en) * 2009-12-01 2011-06-09 Lester Paul Russell Systems and methods for management and collaboration in a private network
US8503984B2 (en) 2009-12-23 2013-08-06 Amos Winbush, III Mobile communication device user content synchronization with central web-based records and information sharing system
CN101764806B (zh) * 2009-12-31 2012-12-26 卓望数码技术(深圳)有限公司 一种单点登录方法、系统以及登录服务平台
CN102201915B (zh) * 2010-03-22 2014-05-21 中国移动通信集团公司 一种基于单点登录的终端认证方法和装置
US20110264768A1 (en) * 2010-04-24 2011-10-27 Walker Digital, Llc Systems and methods for facilitating transmission of content from a source to a user device
US8918848B2 (en) * 2010-04-26 2014-12-23 Blackberry Limited Method and system for third party client authentication
US9329903B2 (en) 2010-05-12 2016-05-03 Emerson Electric Co. System and method for internet based service notification
US10142292B2 (en) * 2010-06-30 2018-11-27 Pulse Secure Llc Dual-mode multi-service VPN network client for mobile device
US9633656B2 (en) * 2010-07-27 2017-04-25 Sony Corporation Device registration process from second display
US8843239B2 (en) * 2010-11-19 2014-09-23 Nest Labs, Inc. Methods, systems, and related architectures for managing network connected thermostats
US9098279B2 (en) * 2010-09-14 2015-08-04 Google Inc. Methods and systems for data interchange between a network-connected thermostat and cloud-based management server
US20120142429A1 (en) 2010-12-03 2012-06-07 Muller Marcus S Collaborative electronic game play employing player classification and aggregation
US8914851B2 (en) 2010-12-06 2014-12-16 Golba Llc Method and system for improved security
US8752154B2 (en) * 2011-08-11 2014-06-10 Bank Of America Corporation System and method for authenticating a user
US8874669B2 (en) * 2011-08-12 2014-10-28 Sony Corporation Synchronizing messages on connected devices
US20130346494A1 (en) * 2012-06-22 2013-12-26 Motorola Mobility, Inc. Cloud-based system and method for sharing media among closely located devices

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1592197A (zh) * 2003-09-01 2005-03-09 台均实业有限公司 用户端设备与本地客户端应用或远程网络服务间鉴权的方法
CN101336536A (zh) * 2005-12-01 2008-12-31 高通股份有限公司 用于支持不同认证凭证的方法和装置
CN101926161A (zh) * 2008-01-25 2010-12-22 三星电子株式会社 家庭网络中处理事件的方法和设备
CN101965574A (zh) * 2008-03-04 2011-02-02 日本电信电话株式会社 认证信息生成系统、认证信息生成方法、客户机装置以及安装了该方法的认证信息生成程序
US8453222B1 (en) * 2010-08-20 2013-05-28 Symantec Corporation Possession of synchronized data as authentication factor in online services

Also Published As

Publication number Publication date
US9584520B2 (en) 2017-02-28
AU2019219786A1 (en) 2019-09-12
AU2020281117A1 (en) 2021-01-07
WO2014047384A3 (en) 2015-07-16
EP2907063B1 (en) 2018-11-21
US20140089671A1 (en) 2014-03-27
AU2013317935A1 (en) 2015-04-09
WO2014047384A2 (en) 2014-03-27
US9237141B2 (en) 2016-01-12
US8539567B1 (en) 2013-09-17
US20160119354A1 (en) 2016-04-28
CA2885220C (en) 2021-01-12
CN105009131A (zh) 2015-10-28
CN109005185B (zh) 2021-03-30
EP3454524B1 (en) 2021-04-07
CA2885220A1 (en) 2014-03-27
EP2907063A2 (en) 2015-08-19
EP2907063A4 (en) 2016-07-20
JP2018129852A (ja) 2018-08-16
CN109005185A (zh) 2018-12-14
EP3454524A1 (en) 2019-03-13
JP2016500210A (ja) 2016-01-07
JP6549276B2 (ja) 2019-07-24
AU2019219786B2 (en) 2020-09-03
AU2020281117B2 (en) 2021-12-23
JP6321015B2 (ja) 2018-05-09
AU2013317935B2 (en) 2019-05-23

Similar Documents

Publication Publication Date Title
CN105009131B (zh) 促进智能家庭设备与基于云的服务器间通信的多层认证方法
CN104813685B (zh) 用于分布式状态的同步的订阅通知机制

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: American California

Applicant after: Google limited liability company

Address before: American California

Applicant before: Google Inc.

GR01 Patent grant
GR01 Patent grant