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