用于附件管理系统的控制器网络的制作方法

文档序号:11162075阅读:562来源:国知局
用于附件管理系统的控制器网络的制造方法与工艺

本申请要求2014年5月30日提交的名称为“Networking,Communication and Security for an Accessory Management System”的美国临时申请62/005,764的权益,并且还要求2014年12月19日提交的名称为“Networking,Communication and Security for an Accessory Management System”的美国临时申请62/094,391的权益,并且还要求2015年5月29日提交的美国申请14/725,891的权益。这些申请的公开全文以引用方式并入本文。

本公开还涉及2015年2月5日提交的美国申请14/614,914和2014年2月5日提交的美国临时申请61/935,967,这些申请的公开内容全文以引用方式并入本文。

本公开还涉及2015年5月29日提交的美国申请14/725,912,该申请的公开内容全文以引用方式并入本文。



背景技术:

本公开整体涉及一种附件管理系统,具体地讲,涉及用于附件管理系统的控制器网络。

电子设备正在一定范围的应用中变得越来越普及。移动电话、平板电脑、家庭娱乐系统等仅仅是用户经常交互的电子设备中的一些。

正变得更加普及的另一类电子设备包括各种能够以电子方式控制的设备,诸如恒温器、照明设备、家用电器等。



技术实现要素:

目前,用户可能难以管理多个能够以电子方式控制的设备或系统。例如,用户家中可能有恒温器、能够以电子方式控制的照明系统、家庭安保系统等。每个此类系统可以由不同的制造商制造,每个制造商可提供专用的控制器设备(例如,基于IR的遥控设备)或控制器应用程序(“或app”),用户可以在诸如智能电话、平板电脑或家用计算机系统的通用设备上安装并运行控制器应用程序。每个控制器设备或应用通常是针对特定制造商的设备定制的,并且可能无法与来自其他制造商的设备,或者甚至与来自同一制造商的其他设备互操作。这样逐个针对的方式不容易缩放。试图利用能够集中控制或管理的异类设备阵列创建“智能家庭”环境等的用户面对着积累过多控制器设备和/或控制器应用的需求。

本发明的特定实施方案可以在用于控制器设备(或“控制器”)和任意数量的要控制的其他电子设备(本文称为“附件设备”或简称为“附件”)之间通信的协议情景中工作。例如,可以在通用计算设备,诸如台式计算机、膝上计算机、平板电脑、移动电话、智能电话、其他手持式或可穿戴计算设备上,通过为通用计算设备提供适当的可执行程序代码来实现控制器;另选地,控制器可以是专用计算设备。附件可以包括能够由控制器控制的任意设备。附件的示例包括灯具、恒温器、门锁、自动门开门器(例如,车库门开门器)、静止或视频相机等。附件和控制器可以通过利用标准传输协议的有线或无线信道,诸如Wi-Fi网络、蓝牙、蓝牙LE等,来彼此通信。应当理解,可以使用其他通信协议和传输。

在一些实施方案中,可以提供“统一”附件协议,控制器可以通过该“统一”附件协议向附件发送命令和控制消息,并以统一格式从附件接收响应,无论附件的类型或功能是什么。例如,可以将附件定义为服务的集合,每种服务都被定义为一组特性,每个特性在任何给定时间具有定义的值。这些特性可以表示附件状态的各个方面。该协议可以定义控制器能够(例如,通过读取)询问和(例如,通过写入)更新附件的特性(单独或按组)所使用的消息格式,由此允许控制器确定和/或改变附件状态。因此,任何类型的附件,无论其功能如何,都可以通过一致的方式被控制。

在一些实施方案中,该协议可以定义安全措施,可以使用该安全措施防止未经授权的控制器操作附件。例如,附件可被配置为仅接受来自先前已经与附件建立配对并因此被附件识别的控制器的请求。该协议可以指定配对流程,以便使未经附件的合法所有者/操作者许可进行配对的风险最小化。此外,该协议可以指定端到端消息加密,使得仅特定控制器和附件能够对它们之间交换的消息解密。

本发明的某些方面可以涉及控制器网络,其中多个控制器可以与同一附件(或同一组附件,例如附件网络)建立配对或通过其他方式被配置为与同一附件(或同一组附件,例如附件网络)通信。在一些控制器网络中,一个或多个控制器可以与附件建立一定水平的特权(例如,“管理”特权),许可这些控制器确定是否应当许可其他控制器向附件发送命令和控制消息。例如,第一控制器可以与附件建立配对。建立配对可以涉及向附件提供第一控制器的长期公钥,以及作为交换,接收用于附件的第一长期公钥。在建立配对中还可以涉及其他操作(例如,带外PIN或密码交换)。独立于与附件的任何通信,第一控制器可以获得用于第二控制器的长期公钥。第一控制器可以利用配对建立期间接收的第一长期公钥与附件建立验证的会话。验证的会话可以具有会话密钥,并且可以利用会话密钥对验证会话内的所有通信加密。在验证会话内,第一控制器可以与附件执行对添加操作,以在附件和第二控制器之间建立配对。配对添加操作可以包括向附件提供用于第二控制器的长期公钥,以及作为交换而接收用于附件的第二长期公钥(可以是或不是在第一控制器建立其配对时接收的同一密钥)。第一控制器可以向第二控制器传送用于附件的第二长期公钥。这个过程可以在第二控制器和附件之间建立配对;之后,第二控制器可以建立其自己的验证会话,以向附件发送命令和控制消息。第一控制器可以重复对添加过程以在附件和任意数量的控制器之间建立配对。

在一些情况下,第一控制器可以指示附件向第二控制器授予管理员(或“admin”)特权。授予这一特权能够允许第二控制器执行对添加操作以在期望时并根据具体实施来添加附加的控制器,第二控制器可以能够或不能向附加控制器授予管理员特权。可以将管理员特权自动分配给与全新附件(或与尚未建立配对的附件)建立配对的第一控制器。使用管理员特权可以帮助设备所有者管控哪些控制器能够获得对特定附件的访问权。

在一些控制器网络中,一个或多个控制器可以作为用于与附件通信的代理而工作。例如,附件可被配置为仅与本地环境中(例如,处于局域网上,局域网根据需要可以是有线或无线的,或在点到点无线通信协议,例如蓝牙的范围内)实际存在的控制器设备通信。本地环境中不实际存在的控制器设备可以与该附件的本地环境中实际存在的另一个控制器(代理设备或代理)建立通信,该代理可以在相距很远的控制器设备和附件之间中继消息和响应。相距很远的控制器和附件能够建立经配对验证的会话并对其通信加密;代理不需要能够读取消息和响应,仅如所接收地中继它们即可。在一些实施方案中,可能需要为另一个控制器充当代理的控制器在附件接受代理中继的任何消息之前与附件建立其自己的配对验证会话。在一些实施方案中,代理和另一个控制器还可以在它们之间建立配对验证的会话,并且这样能够针对未经授权的访问提供进一步的保护。

在一些实施方案中,控制器在可能的时候可以优选直接通信,并在附件不可直接联系时使用代理。例如,在与附件建立配对之后,控制器可以接收用户输入(或其他输入),该输入请求与附件交互(例如,以检查或更改其状态)。响应于该输入,该控制器能够确定附件是否可以直接联系到,例如,控制器和附件是否在同一局域网上。如果是这样,那么控制器可以直接与附件通信,以建立配对验证会话并交换命令和控制消息。如果附件不直接可达,控制器可以尝试识别例如通过局域网或广域网可达的代理。附件可以与代理建立通信,然后通过代理与附件通信。

在一些实施方案中,代理可以是已经与附件建立配对并存在于附件的本地环境中的任何控制器。代理可以从控制器接收与附件通信的请求。作为响应,该代理可以与附件建立其自己的配对验证会话。可以通过配对验证会话将从控制器接收的消息中继到附件,并且可以将通过配对验证会话从附件接收的消息中继到控制器。代理可能不知道其中继的消息内容;因此,例如,控制器和附件可以使用代理不知道的密钥(例如,其自己的配对验证会话密钥)发送加密的消息。代理可以继续中继消息,直到控制器和附件中的一者或另一者(或两者)发送指示可以中止中继的消息为止。此时,代理可以结束其验证会话并中止中继消息。

这种代理可以提供中继功能,中继功能可以扩展控制器网络的物理范围而无需将附件连接到广域网。一些被称为协调器的代理可以提供附加的功能,而不仅仅是中继消息。例如,协调器可以居间完成对附件(或一组附件,例如附件网络)的访问。协调器能够与附件建立配对,并能够与附件一起保持在本地环境中。其他控制器可以与协调器建立配对,以补充或替代与附件建立配对。在控制器和协调器之间的配对验证会话期间,控制器可以向协调器发送指令以控制附件。协调器可以与附件建立配对验证会话,并向附件提供对应的命令和控制消息。协调器可以从附件接收响应,并向控制器发送对应的响应。在这种配置中,协调器可以读取控制器发往附件的消息以及附件对控制器的响应。可以通过控制对协调器的访问来控制对附件的访问。例如,附件可被配置为仅与协调器建立配对。此外,在多个控制器可能同时尝试控制同一附件的情况下,协调器可以协调其动作,例如,实施优先级逻辑以解决冲突指令等。在一些实施方案中,协调器还可以对每个控制器或每个附件施加访问限制。协调器不是必需的,但在有协调器时,一些实施方案可以要求或优选通过协调器进行与附件的通信。

以下具体实施方式连同附图将提供对本发明的实质和优点的更好理解。

附图说明

图1示出了根据本发明的一个实施方案的家庭环境。

图2示出了根据本发明的一个实施方案,具有已经与附件建立配对的多个控制器的控制器网络的示例。

图3是根据本发明的一个实施方案的用于在多个控制器与一个附件之间建立配对的过程的流程图。

图4示出了根据本发明的一个实施方案的附件授权表。

图5示出了根据本发明的一个实施方案的另一种控制器网络配置。

图6是根据本发明的一个实施方案的可用于经由代理与附件建立通信的过程的流程图。

图7是根据本发明的一个实施方案的用于经由代理在控制器与附件之间通信的过程的流程图。

图8示出了根据本发明的一个实施方案的具有桥接器的控制器网络配置。

图9示出了根据本发明的一个实施方案的具有隧道的控制器网络配置。

图10是根据本发明的一个实施方案的用于经由隧道在控制器与附件之间通信的过程的流程图。

图11示出了根据本发明的一个实施方案的经由隧道的读取请求的通信。

图12示出了根据本发明的一个实施方案的经由隧道的写入请求的通信。

图13示出了根据本发明的一个实施方案的另一种控制器网络配置的示例。

图14是根据本发明的一个实施方案的控制器的简化框图。

图15是根据本发明的一个实施方案的附件的简化框图。

具体实施方式

示例性环境

图1示出了根据本发明的一个实施方案的家庭环境100。家庭环境100包括控制器102,控制器102能够与位于该环境中的各个附件设备(也称为附件)通信。控制器102可包括,例如,台式计算机、膝上型计算机、平板电脑、智能电话、可穿戴计算设备、个人数字助理或能够向附件传送命令和控制消息并提供用户界面以允许用户指示对附件的期望操作的任何其他计算设备或设备组(例如,如上述美国临时申请61/935,967和美国申请14/614,914中所述)。在一些实施方案中,可以利用多个分立设备实现控制器102。例如,可以存在基站以及一个或多个移动遥控站,基站与附件通信并可以安装于环境100中的固定位置,移动遥控站(例如手持或可穿戴设备,诸如移动电话、平板电脑、智能手表、眼镜等)提供用户界面并与基站通信以实现对附件的有效控制。在一些实施方案中,基站可以如下所述充当协调器或代理。

可以控制任何类型的附件设备。附件设备的示例包括门锁104、车库门系统106、灯具108、安保摄像机110和恒温器112。在一些情况下,控制器102能够直接与附件通信;例如,控制器102被示为直接与门锁104和车库门系统106通信。在其他情况下,控制器102可以通过中介设备通信。例如,控制器102被示为经由无线网络接入点114与处在由接入点114提供的无线网络上的附件108,110,112通信。如上所述,在一些实施方案中,控制器102可以包括基站,基站功能可以集成到接入点114中或要控制的附件之一中(例如,恒温器112)。在一些实施方案中,中介设备可以如下所述充当代理或协调器。

可以使用各种通信传输和传输组合,并且可以为不同的设备使用不同的传输。例如,诸如由Bluetooth SIG发布的Classic或Smart通信协议的一些无线传输(本文称为“蓝牙”和“蓝牙LE”)可以支持有限范围之内的设备之间的直接点到点通信。其他无线传输,诸如符合联网标准的无线网络和Wi-Fi Alliance发布的协议(本文称为“Wi-Fi网络”)可以与中心接入点一起定义无线网络,中心接入点对网络上的不同设备之间的通信进行路由。此外,尽管示出了无线通信传输,但也可以为一些或所有附件提供有线传输。例如,灯泡108可以通过有线连接而连接到接入点114,并且控制器102可以通过以无线方式向接入点114发送消息来与灯泡108通信,这样可以通过有线连接向灯泡108传输消息。有线和无线通信的其他组合也是可能的。

此外,尽管示出了一个控制器102,但家庭环境可以具有多个控制器设备。例如,家中生活的每个人可以拥有其自己的便携式设备(或设备),其可以为一些或全部附件104-112充当控制器。不同的控制器设备可被配置为与不同子组的附件通信;例如,可以阻止儿童的控制器修改恒温器112上的设置,而许可父母的控制器设备修改设置。例如,可以利用下文和上文参考美国申请14/725,912中所述的技术配置并控制此类许可。

在一些实施方案中,统一附件协议可以方便控制器102与一个或多个附件104-112的通信。该协议可以提供简单可扩展框架,该框架将附件模型化为服务的集合,每种服务都被定义为一组特性,每个特性在任何给定时间都具有定义的值。各种特性可以表示附件状态的各个方面。例如,对于恒温器112而言,特性可以包括电源(开或关)、当前温度和目标温度。在上述美国临时申请61/935,967和美国申请14/614,914中描述了基于服务和特性的附件模型的示例。

该协议还可以定义控制器102向附件112(或其他附件)发送命令和控制消息(请求)以及附件112向控制器102发送响应消息的消息格式。命令和控制消息可以允许控制器102询问附件特性的当前状态,在一些情况下,允许修改特性(例如,修改电源特性可以关闭或打开附件)。因此,可以通过发送适当的消息来控制任何类型的附件,无论其功能或制造商是什么。该格式可以在各个附件之间是相同的。在一些实施方案中,消息格式可以是与传输相关的,同时符合相同的附件模型。在上述美国临时申请61/935,967和美国申请14/614,914中描述了消息格式的示例。

该协议还可以提供通知机制,该通知机制允许附件112(或其他附件)在状态改变时选择性地通知控制器102。可以实施多种机制,并且控制器102可以出于给定目的注册或订阅最适当的通知机制。在上述美国临时申请61/935,967和美国申请14/614,914中描述了通知机制的示例。

在一些实施方案中,可以将与给定附件的通信限于经授权的控制器。该协议可以指定一种或多种机制(包括本文称为“配对建立”和“配对添加”的机制),在提供高置信度,表示用户希望控制器102能够控制附件104的环境下,在控制器102和给定附件(例如,门锁附件104)之间建立“配对”。配对建立可以包括带外信息交换(例如,用户可以向控制器102提供的接口中输入由附件104提供的数字或数字字母PIN或密码)以建立共享秘密。可以使用这一共享的秘密来支持控制器102和附件104之间“长期”公钥的安全交换,每个设备可以存储从另一方接收的长期公钥,使得建立的配对可以持续。在建立配对之后,认为控制器102已被授权,之后,控制器102和附件104可以根据需要进出通信而不会丢失建立的配对。在控制器102尝试与附件104通信或控制附件104时,可以首先执行“配对验证”过程以验证存在所建立的配对(例如,在控制器102先前完成与附件104的配对建立时,会是这种情况)。该配对验证过程可以包括每个设备证明其拥有与配对建立期间交换的长期公钥对应的长期私钥,并可以进一步包括建立新的共享秘密或会话密钥,以对“配对验证”会话(本文也称为验证会话)期间的所有通信加密。在配对验证会话期间,具有适当特权的控制器可以执行“配对添加”过程以代表另一控制器与附件建立另一配对。任一设备都可以在任何时间,仅仅通过破坏其会话密钥副本或使其失效而结束配对验证会话。

在一些实施方案中,多个控制器可以与同一附件(例如,通过执行配对建立或由先前执行过配对建立的控制器添加配对)建立配对,附件可以接受来自其配对控制器中的任一个的通信并作出响应,同时拒绝或忽略来自未配对控制器的通信。在上文援引的美国临时申请61/935,967和美国申请14/614,914中描述了配对建立、配对添加和配对验证过程的示例以及与安全相关的操作的其他示例。

应当理解,家庭环境100是例示性的,并且变型形式和修改形式是可能的。可以在用户希望利用控制器设备控制一个或多个附件设备的任何环境中实施本发明的实施方案,包括但不限于家庭、汽车或其他交通工具、办公楼、具有多个楼宇的校园(例如,大学或企业园区)等。可以控制任何类型的附件设备,包括但不限于门锁、开门器、照明器具或照明系统、开关、电力插座、相机、环境控制系统(例如恒温器和HVAC系统)、厨房器具(例如冰箱、微波炉、洗碗机)、其他家用电器(例如洗衣机、烘干机、真空吸尘器)、娱乐系统(例如电视、立体声系统)、窗户、百叶窗、安保系统(例如报警器)、传感器系统等。单个控制器可以与任意数量的附件建立配对,并且能够在不同时间与不同附件选择性地通信。类似地,单个附件可以由与其已经建立配对的多个控制器控制。可以通过将功能模型化为具有一个或多个特性的服务并允许控制器与服务和/或其特性交互(例如读取、修改、接收更新)来控制附件的任何功能。因此,可以将本发明实施方案中使用的协议和通信过程统一用于具有一个或多个控制器和一个或多个附件的任何情景中,无论附件的功能或控制器的形状因数或特定接口如何。

示例性控制器网络

在一些实施方案中,多个控制器可以控制附件。图2示出了三个控制器202(1)-202(3)的示例,每个都已经与附件204建立配对。因此,控制器202(1)-202(3)中的每个都在例如安全存储元件206(1)-206(3)内存储了附件204的长期公钥(LTPKA)的副本,并且附件204例如在安全存储元件208内存储了控制器202(1)-202(3)中的每个的长期公钥(LTPKC1、LTPKC2、LTPKC3)的副本。每个设备202,204还可以在其自己的安全存储元件206,208内具有其自己的长期公钥和对应的长期秘钥(LTSK),如图所示。安全存储元件202,208可以是例如集成电路,其实施加密算法和/或提供安全信息存储能力;下文描述了示例。在一些实施方案中,以加密形式在设备之间交换长期公钥并对其解密并且在安全存储元件202,208内存储。这样可以帮助防止未授权的设备(例如,未授权的控制器)获知另一设备(例如,附件)的公钥。

在一些实施方案中,每个控制器202可以与附件204独立地执行配对建立操作。如本文所用,配对建立操作可以包括任何通信序列,其导致控制器和附件之间长期公钥的交换。配对建立操作还可以包括带外通信,以验证用户已经授权配对和/或建立共享秘密,用于以加密形式交换长期公钥。例如,附件204可以提供PIN(个人识别号)或其他密码(例如,任何数字字母序列),并且可以提示用户在配对建立期间向控制器202的用户界面中直接输入PIN或密码。可以由附件随机生成或由制造商预先分配PIN或密码。为了提高安全性,PIN或密码可以与任何其他附件识别信息,诸如制造商、型号或序列号等无关。作为另一个示例,带外通信可以包括经由短程信道,诸如近场通信(NFC)、蓝牙LE、基于图像的信息交换(例如,其中一个设备呈现图像,诸如QR码等,图像被另一设备的相机捕获并处理以提取信息),在设备之间沟通PIN或其他信息,其可以提供验证,表明控制器和附件在配对建立时在物理上接近。在上述美国临时申请61/935,967和美国申请14/614,914中描述了可以使用的配对建立操作的具体示例。

在一些实施方案中,可以进一步限制与附件的配对。例如,假设控制器202(1)是与附件204执行配对建立的第一个控制器。因为是执行配对建立的第一个,可以由附件204授予控制器202(1)管理员(或“admin”)特权。附件204可以在例如安全存储元件208中存储指示哪些控制器具有管理员特权的信息。之后,可以限制任何其他控制器202与附件204执行配对建立,除了被控制器202(1)授权的之外。例如,在与控制器202(1)执行配对建立之后,附件204可以拒绝与任何其他控制器执行配对建立,除非首先(例如,使用上文援引的美国临时申请61/935,967和美国申请14/614,914中描述的配对移除过程)消除与控制器202(1)的配对。尽管控制器202(1)保持配对,但可以通过控制器202(1)添加新配对。例如,控制器202(1)可以获得控制器202(2)的长期公钥(LTPKC2)并利用配对添加过程(例如,如上文援引的美国临时申请61/935,967和美国申请14/614,914中所述)向附件204提供LTPKC2。可以通过类似方式添加控制器202(3)和任意数量的其他控制器。

或者,在控制器202(1)已经执行配对建立之后,仅在控制器202(1)处于与附件204的配对验证会话中并且提供授权进行新配对建立的指令时,才可以允许其他控制器,例如控制器202(2)、202(3)执行配对建立。例如,如果附件204从控制器202(2)接收到执行配对建立的请求,附件204可以向控制器202(1)发送通知,指示控制器202(2)正在尝试执行配对建立。控制器202(1)可以警示用户,用户可以指示应当允许还是拒绝配对建立。控制器202(1)可以向附件204传送用户的决定,附件204可以相应地进行操作。

在一些实施方案中,控制器202(1)或具有管理员特权的任何其他控制器可以向其他控制器授予管理员特权。例如,当处于与附件204的配对验证会话中时,具有管理员特权的控制器202(1)可以从附件204获得附件204对其具有长期公钥的所有控制器(例如,控制器202(2),202(3))的列表。控制器202(2)可以将另一控制器,例如控制器202(3)识别为管理员,附件204可以授予控制器202(3)管理员特权。作为另一个示例,在配对添加过程期间,控制器202(1)可以向附件204指示是否要授予被添加控制器管理员特权。在该示例中,具有管理员特权的任何控制器都可以向其他控制器授予管理员特权。在一些情况下,附件204可以限制可以同时并存配对的控制器总数和/或授予管理员特权的控制器数量。

如上所述,具有管理员特权的控制器可以向或从附件的配对控制器列表添加或移除其他控制器。应当理解,具有管理员特权的控制器还可以例如,通过向特性写入值来控制附件的操作,如上文援引的美国临时申请61/935,967和美国申请14/614,914中所述。可以将没有管理员特权的配对控制器说成具有“用户”特权。此类控制器可以控制附件的操作,但不能向或从附件的配对控制器列表添加或移除其他控制器。在一些实施方案中,除了管理员和用户层级之外或作为替代,还可以定义其他层级的特权。例如,可以授权控制器控制多功能附件的一些而非全部功能,或者可以基于使用附件的时间、位置、持续时间等限制控制器的特权。无论特权等级的数量或复杂性如何,都可以按照本文所述的方式管理控制器的特权。例如,要与附件配对的第一个控制器可以自动具有管理员特权(最高等级的特权),并可以向其他控制器授予相同等级或任意或更低等级的特权。类似地,具有管理员特权的控制器也可以撤销其他控制器的特权。在一些实施方案中,可以授予要与附件配对的第一个控制器特殊状态,使得其他控制器不能撤销其特权,尽管控制器可以撤销其自己的特权,例如,使用配对移除过程。

应当理解,控制器网络200是例示性的,并且变型形式和修改形式是可能的。任意数量的控制器可以与附件建立配对,每个控制器可以是支持用户交互(例如,通过本地或远程用户界面)并可以通过有线和/或无线信道与其他设备通信的任何类型的电子设备。示例包括移动电话、平板电脑、可穿戴设备、膝上型计算机、台式计算机、专用附件控制基站等。附件可以是具有可控功能并且能够通过有线和/或无线接口与其他设备通信的任何电子设备。示例包括灯(或光源)、风扇、恒温器、电器(冰箱、烤箱、洗碗机、洗衣机、烘干机、真空吸尘器等)、门锁、开门器、媒体存储装置和/或回放设备(电视、有线或卫星电视接口单元、DVD播放器、数字录像机、数字音乐播放器、流媒体设备等)等等。此外,单个控制器可以与多个附件建立配对,同一控制器可以相对于不同附件具有相同特权等级或不同特权等级。

图3是根据本发明的一个实施方案的过程300的流程图,该过程用于在多个控制器(例如,图2的控制器202(1)-202(3))和附件(例如,附件204)之间建立配对。在附件204未建立通往任何控制器的配对时,例如,在附件204刚拆封时或在移除了所有先前建立的配对之后,过程300可以开始。

在框302处,第一控制器(例如,控制器202(1))可以执行配对建立以与附件204建立配对。如上所述,建立配对可以包括安全交换长期公钥(LTPKA和LTPKC1)以及带外操作,以确认应当允许控制器202(1)建立配对。

在框304处,假设配对建立成功,附件204可以向控制器202(1)自动授予管理员特权。这可以是自动的,因为不存在其他配对。因此,在该示例中,要与附件建立配对的第一个控制器自动就是该附件的管理员。附件204可以在安全存储元件208中例如与长期公钥LTPKC1相关联地记录控制器202(1)的特权等级。

在框306处,控制器202(1)可以执行配对添加过程(例如,如上文援引的美国临时申请61/935,967和美国申请14/614,914中所述)以添加另一个控制器,例如控制器202(2)。例如,控制器202(1)可以与控制器202(2)通信,以获得其长期公钥(LTPKC2),其可以利用配对添加过程与附件204交换该长期公钥。在配对添加过程结束时,控制器202(1)可以向控制器202(2)转发在配对添加过程期间从附件204接收的长期公钥(LTPKA)。在一些实施方案中,可以在短程通信信道上执行控制器202(1)和202(2)之间这些长期公钥的交换,和/或可以由一个或两个控制器要求用户输入,以确认密钥来源。

在框310处,附件204可以确定用于控制器202(2)的特权等级。在一些实施方案中,控制器202(1)可以在配对添加过程期间指示特权等级,如果未指定特权等级,可以采用默认特权等级(例如,如上所述的用户特权)。在一些实施方案中,附件204可以请求控制器202(1)指定特权等级。附件204可以在安全存储元件208中例如与长期公钥LTPKC2相关联地记录控制器202(2)的特权等级。

可以重复框306-310以与附件204建立任意数量控制器202的配对。在一些实施方案中,任何具有管理员特权的控制器都可以使用框306-310添加配对。在一些实施方案中,仅有第一个控制器可以向其他控制器授予管理员特权,而在其他实施方案中,具有管理员特权的任何控制器都可以向其他控制器授予管理员特权。

图4示出了根据本发明的一个实施方案的附件授权表400。例如,可以在图2的附件204的安全存储元件208中存储附件授权表400的全部或部分。可以通过执行图3的过程300或其部分来构建附件授权表400。对于已经与其建立配对的每个控制器,附件授权表400可以存储控制器标识符(ID)(字段402)、长期公钥LTPKC(字段404)和特权指示符(字段406)。字段402中识别的控制器可以是方便附件识别控制器的任何标识符;尽管示出了用户友好的名称作为示例,但控制器标识符可以是向附件唯一标识特定控制器的任何事物(例如,分配给控制器的唯一设备标识符、控制器的MAC地址等)。

例如,“爸爸的计算机”410(在该示例中属于名称为爸爸的用户)可以是与附件204配对的第一个控制器,并且可以因为执行上述过程300的框302和304而具有管理员特权。爸爸然后可以使用上述过程300的框306-310添加他的电话412作为第二控制器。在该示例中,爸爸的电话仅被授予用户特权(可能因为爸爸感到其手机不够安全,并且更喜欢在电话上没有管理员特权)。爸爸还可以添加妈妈的电话414(属于名称为妈妈的用户)并使用过程300的框306-310授予管理员特权。

由于妈妈和爸爸都有具有管理员特权的控制器,因此妈妈或爸爸都可以使用过程300的框306-310添加Jill的电话414和Jack的电话416。(例如,Jill和Jack可能是与妈妈和爸爸一起生活的孩童。)在该示例中,Jill的电话414和Jack的电话416仅被授予用户特权,并且不能用于向表400或从表400添加或移除其他控制器。

LTPKC字段404被示为存储控制器的长期公钥的加密副本,可以在配对建立或配对添加操作期间针对给定控制器获得长期公钥。LTPKC字段404的加密可以使用仅被附件知道的密钥。在一些实施方案中,可以通过在附件的安全存储元件(下文描述示例)中存储它们来保护长期公钥。此外,不需要针对所存储的长期公钥的安全措施。

应当理解,过程300和表400为例示性的并且变型形式和修改形式是可能的。可并行执行按顺序描述的过程步骤,可改变步骤的顺序,并且可修改、合并、添加或省略步骤。可以添加任意数量的控制器,并且可以有更多的特权等级。在一些实施方案中,可以根据用户而非根据设备管理特权,在这种情况下,一些或所有用户的设备能够自动具有相同的特权等级。例如,图4的用户“爸爸”可能有通过用户爸爸的公共用户标识符而同步的电话和平板电脑。这一标识符可以是例如在支持数据备份、同步和/或用户设备的其他服务的基于云端的服务处为用户爸爸维护的账户的账户标识符。爸爸可以通过例如为设备注册服务来将账户标识符(例如,用户名和口令)与平板电脑或电话相关联。长期公钥/秘钥对可以与爸爸的账户相关联并由服务向与爸爸账户相关联的,例如,结合数字证书的每个爸爸设备提供。因此,每个设备可以在与附件通信时使用相同的(LTPKC,LTSKC)对。表400可以将特权等级与特定LTPKC而非特定控制器设备相关联,因此如果用于用户爸爸的LTPKC具有管理员特权,则为具有该LTPKC并且能够与附件建立配对验证会话的任何控制器授予用户特权。此外,具有相同(LTPKC,LTSKC)对的所有控制器都能够向具有相同控制器ID的附件标识它们自己,控制器ID可以从爸爸的账户ID推导。

图2中所示的控制器网络允许多个控制器202控制附件204。原则上,控制器202和附件204之间的通信可以通过任何类型的传输或通信信道进行,包括局域网、广域网、互联网等。然而,出于各种原因,可能希望不将附件204连接到任何广域网。因此,对附件的访问可以限于当前与附件204都处于局域网或LAN(例如,附件204加入的特定Wi-Fi网络)上或处于短程点到点通信信道,诸如蓝牙或蓝牙LE信道的范围中的控制器202。如果是这种情况,图2中的控制器202将仅在连接到同一LAN或处于附件204范围内时才能够操作附件204。因此,例如,控制器202(1)可能在两者都在同一楼宇(例如,在家中或在附件204所处的其他环境中)中时控制附件204,在控制器202(1)很远(例如,在镇子的另一侧)时,则不能控制。

图5示出了根据本发明的一个实施方案的另一种网络配置500。配置500允许控制器通过代理与附件通信。控制器502(1)-502(3)可以类似于图2的控制器202,并且附件504可以类似于图2的附件204。在该示例中,控制器502(1)当前位于具有附件504的本地环境506中。例如,控制器502(1)和附件504可以在同一局域网(LAN)上,诸如Wi-Fi网络上,或在蓝牙范围内等等。控制器502(2)和502(3)同时位于本地环境506外部,但连接到通信网络508(例如,互联网或其他广域网);此类控制器被说成处于附件504的“远方”。应当理解,控制器502可以是有时在本地环境506内,并且有时在本地环境506外部的移动设备。此外,在该示例中,附件504仅在本地环境506内通信。

代理设备(或“代理”)510可以方便远程控制器502(2),502(3)和附件504之间的通信。代理510可以是本地环境506中存在并且能够与附件504通信的任何电子设备。在一些情况下,代理510可以是碰巧在本地环境506中的另一个控制器。代理510可以是不太可能离开本地环境506的设备,诸如台式计算机、无线网络接入点设备、专用附件控制器(基站)设备等。不像本示例中的附件504那样,代理510可以连接到网络508,使得控制器502(2),502(3)可以定位代理510并与其通信。

在一些实施方案中,代理510可以充当远程控制器502(2),502(3)和附件504之间的中继。代理510可以与附件504已经(例如,使用配对建立或配对添加过程)建立自己的配对,如控制器502(2),502(3)所能做的那样。在工作中,远程控制器,例如控制器502(2)可以与代理510建立连接(例如,配对验证会话),并向代理510发送消息,指示其希望与附件504通信。代理510能够与附件504建立连接(例如,配对验证会话)并使用该会话在控制器502(2)和附件504之间中继消息。例如,通过中继,控制器502(2)能够与附件504建立其自己的配对验证会话,然后在配对验证会话期间发送控制消息并接收响应。代理510可以来回传递消息(任选地,添加其自己的已认证签名或加密层),同时保持对其内容不了解。下文参考“隧道”代理描述具体的实施方式。

从用户的角度讲,控制器502(2)控制附件504的操作可以相同,无论通往附件504的连接是直接的还是通过代理510。例如,如图5中所示,对于控制器502(2)而言,任何控制器都能够执行附件控制应用522,该附件控制应用生成用于控制附件504的用户界面(诸如图形用户界面)。用户界面可以包括显示附件504的当前设置的显示器元件,改变一些或全部设置的用户可操作控件等。附件控制应用522可以与操作系统过程524(本文称为“附件管理守护进程”)交互,该操作系统过程524管理控制器502和附件504之间的通信。附件管理守护进程524能够以不知道传输的方式向应用522呈现应用程序界面(API),使得应用522例如能够调用API功能,指示应当向附件504发送消息。附件管理守护进程524能够通过对用户而言透明的方式创建通往附件504的直接或间接(例如,通过代理510)通信路径,并发送消息。在一些实施方案中,附件管理守护进程524还可以通过对应用522而言透明的方式处理操作,诸如配对验证和配对验证会话内通信的加密/解密。

图6是根据本发明的一个实施方案的过程600的流程图,附件管理守护进程524(或诸如图5的控制器502的任何控制器中的其他过程)可以使用过程600与附件(例如,附件504)通信。例如,可以使用过程600支持控制器网络配置,诸如图5的配置500。

在框602处,过程600可接收请求与附件进行交互的输入。例如,用户能够与应用程序交互,以指示希望与附件504通信,应用程序可以向附件管理守护进程524(直接或通过居间的软件支持层)调用适当的API功能调用,以开始与附件504的配对验证会话。

在框604处,过程600可以获得通往附件504的潜在通信路径的列表。在一些情况下,至少一个潜在通信路径可以是“直接”路径。例如,如上所述,如果控制器502连接到同一LAN,附件504可以在LAN上可及,图5中的控制器502(1)就是这种情况。除直接路径之外或作为替代,一个或多个“间接”潜在通信路径也可以经由代理(例如,代理510)可用,并且框604可以包括获得潜在代理设备的列表。可以利用各种技术获得列表。在一些实施方案中,在特定控制器502(2)具有与附件504的验证会话时,该控制器502(2)可以从附件504接收所有经授权控制器的列表。控制器502(2)可以存储该列表供稍晚使用,并且框608可以包括访问最近接收的列表。在一些实施方案中,控制器502(2)可以从基于云端的数据服务获得经授权控制器和/或附件(或附件网络)代理的列表,或者作为控制器之间共享的环境模型的一部分,例如,如上文援引的美国申请14/725,912中所述。作为另一个示例,控制器502(2)可以能够经由网络508定位代理510并向代理510发送消息,以获得代理510能够与其通信的关于附件的信息。在一些实施方案中,控制器502(2)能够在框602处接收输入之前创建潜在通信路径的列表,并且可以在框604处访问先前创建的列表。

在框606处,控制器502(2)可以从潜在通信路径的列表选择通信路径。可以使用若干不同的选择规则。在一些实施方案中,路径选择可以取决于控制器的偏好。例如,一个特定控制器(例如,移动电话)可以偏好于只要可能就使用直接通信路径,而不同的控制器(例如,诸如智能电话的可穿戴设备)可以偏好于只要可能就使用间接通信路径。作为另一个示例,直接路径和间接路径之间的选择可以取决于认为是控制器还是代理更可能能够建立并维持通往附件504的连接。例如,如果附件504具有有限的通信范围,与附件504物理邻近安装的代理510可能比移动控制器设备502(2)更可靠地能够建立和维持连接,即使在控制器502(2)在本地环境506中时也是如此。

为了在间接路径之间进行选择(例如,在没有直接路径时或在优选间接路径时),在一些实施方案中,可以基于设备类型信息进行选择,设备类型信息涉及到潜在代理设备以及哪种代理设备最可能具有通往附件的可靠连接的关联推论。例如,如上所述,代理510可以是本地环境506中存在的任何设备,而在设备在本地环境506外部时,不能充当代理。因此,本地环境506中存在潜在代理的可能性可以是选择要使用代理时的考虑事项。作为例示,如果其用户离开的话,移动电话会非常可能离开本地环境506,而台式计算机相对而言不太可能离开本地环境506;因此,相对于移动电话,可能优选台式计算机作为代理。作为另一个示例,可以在不使用时关闭台式计算机,而通常保持在本地环境506中的另一类设备(例如专用附件控制基站)可能更可能始终开机,因此始终可及。基于此类考虑,可以建立优选代理设备类型的分级结构(例如,首先是专用基站,然后是台式计算机,然后是其他固定设备,然后是移动设备),并且在框610处选择代理可以基于设备类型和该分级结构。可以实施其他选择规则,包括随机选择。

在框608处,过程600可以尝试通过选择的(直接或间接)通信路径形成连接。对于直接通信路径而言,框608处的处理可以包括向附件504直接发送消息以建立通信信道。对于间接通信路径而言,连接尝试可以包括尝试在控制器502(2)(可以在其上执行过程600)和选择的代理510之间建立通信信道。在一些实施方案中,可以利用基于云端的数据服务方便定位选择的代理,该基于云端的数据服务具有关于各用户设备位置或连接的信息。在一些实施方案中,代理510可以通过例如参考类似于框604处列表的授权控制器的列表,验证控制器502(2)被授权与其通信。

如果在框610处,连接经由间接路径,那么在框612处,过程600可以确定是否已成功建立通往代理510的连接。如果未成功,那么在框614处,过程600可以确定是否重新尝试(例如,使用不同的通信路径或重新尝试同一路径)。决定重新尝试可以使过程600返回框606,以选择另一条通信路径(或重新尝试相同的通信路径);决定不尝试则在框616处结束过程600。如果在框612处已经建立通往代理510的连接,那么在框618处,过程600可以确定代理510是否能够连接到附件504。例如,在已经建立通往代理510的通信路径时,控制器502(2)可以在该路径上发送消息,指示要与附件504通信的请求。作为响应,代理510可以尝试与附件504建立通信会话(根据特定代理510,可以是或不是配对验证会话),框618处的结果可能取决于尝试是否成功。如果连接尝试成功,那么在框620处,在控制器502(2)连接到代理510,代理510连接到附件504的情况下,控制器502(2)可以通过代理510与附件504通信。如果框618处的连接尝试失败,过程600可以继续进行到框614以重新尝试或退出。

如果在框610处,连接经由直接路径,那么在框622处,过程600可以确定是否已成功建立通往附件504的(直接)连接。如果已经建立直接连接,那么在框624处,控制器502(2)可以直接与附件504通信。如果未建立直接连接,那么过程600可以继续进行到框614以重新尝试或退出。

过程600允许控制器支持通往同一附件的多个通信路径,可以基于每个连接,例如根据控制器当前位于哪里(例如在附件所处的本地环境之内或外部)和其他策略偏好来作出要使用哪条路径的决策。不同的控制器可以实施不同的偏好,可以排除一些控制器使用特定通信路径(例如,可能要求特定控制器仅使用直接通信路径或仅使用间接通信路径)。

图7是根据本发明的一个实施方案的用于经由代理在控制器与附件之间通信的过程700的流程图。过程700可以例如在图5的代理510中实现。

在框702处,代理510能够从控制器(例如图5的控制器502(2))接收要连接到附件(例如,附件504)的请求。这可对应于过程600的框612或620。作为响应,在框704处,代理510能够连接到附件504。例如,代理510能够与附件504建立配对验证会话(例如,如上所述)。在一些实施方案中,代理510和附件504之间的通信可以使用除统一附件协议之外的协议。代理510可以利用附件504支持的任何协议建立通往附件504的连接,此类协议可以包括或可以不包括保证代理510和附件504之间信道的安全。如果代理510不能建立会话,代理510可以这样通知控制器502(2)(例如,在过程600的框620处)。下文参考“桥接器”和“隧道”代理描述建立连接的附加示例。

在框706处,假设建立配对验证会话,代理510能够在控制器502(2)和附件504之间中继消息。代理510不知道其中继的消息的消息内容。例如,代理510可以简单地按照在任一方向接收的样子传递消息。这些消息可以与如果控制器502(2)在本地环境506中并且直接与附件504通信时交换的完全相同。例如,控制器502(2)可以首先与附件504建立配对验证会话(独立于代理510和附件504之间的会话),之后可以利用针对控制器502(2)的会话密钥,向附件504发送加密的控制消息并从附件504接收加密的响应。代理510不需要能够读取这些消息,只要代理510能够将它们路由到其目的地即可。

在一些实施方案中,代理510可以利用其自己的配对验证会话密钥来加密发往附件504的消息。如果是这种情况,附件504可以去除代理510添加的加密以提取来自控制器502(2)的原始消息,然后例如利用与控制器502(2)相关联的不同会话密钥来加密消息。类似地,附件504可以利用与控制器502(2)相关联的会话密钥加密响应,然后在利用与代理510相关联的会话密钥加密的消息中向代理510发送响应;如果是这种情况,代理510可以对消息解密并向控制器502(2)转发仍然加密的响应。因此,控制器502(2)和附件504之间的配对验证会话可以提供端到端加密和对抗通信拦截的安全性,无论是什么特定通信路径。

在一些实施方案中,代理510和控制器502(2)还可以独立于所有其他加密方案和密钥而建立安全(例如,加密的)通信信道。如果是这种情况,代理510可以利用适当的密钥对入站和出站的消息来执行解密和重新加密。如果使用的话,这层加密会在端点(控制器502(2)和附件504)执行的配对验证加密顶部,因此端点之间的通信能够保持安全而不被代理510读取。

在框706处,可以在任一或两个方向上中继任意数量的消息。在框708处,代理510可以确定应当结束中继消息。例如,代理510能够从附件504或控制器502(2)接收会话结束消息。这样的消息可以在附件504或控制器502(2)决定结束与代理510的通信会话时生成。作为另一个示例,代理510和控制器502(2)之间的连接或代理510和附件504之间的连接可能会超时。在框710处,代理510可以关闭中继信道(即,停止在设备之间中继消息)。在一些实施方案中,代理510可以向附件504和控制器502(2)中的一者或两者发送消息,以指示已经关闭了中继信道。

应当理解,图5-图7的网络配置和过程是例示性的,并且变型形式和修改形式是可能的。可并行执行按顺序描述的过程步骤,可改变步骤的顺序,并且可修改、合并、添加或省略步骤。控制器有时可以直接访问附件(例如,在它们在本地环境506中时),在其他时间通过代理访问附件。假设有连接到互联网(或其他全球性网络)的代理,可以使用控制器从世界任何地方控制附件。通过这种方式使用代理能够提供如下便利:从任何地方控制附件,而无需将附件连接到广域网。这样可以通过限制对附件的访问而有助于安全性。此外,在代理实施其自己的安全(例如,仅为处在附件的授权控制器列表上的控制器提供中继)的范围内,该附加一层安全性可以在附件和控制器之间配对验证提供的安全性上方,提供针对利用附件进行篡改的附加保护。

代理可以是请求通过代理通信时本地环境中存在的任何设备,其可以将自身向要控制的附件呈现为控制器(例如,以建立配对验证会话),并且其能够(例如,通过执行适当的程序代码)在附件和另一个控制器之间中继信息。代理可以但不需要具有其自己的用户界面以允许用户直接与其交互;在一些情况下,与代理的所有交互都可以通过另一个控制器。在一些实施方案中,附件可以要求通过代理进行对附件的所有访问。在一些情况下,可以通过多个代理形成通往附件的连接。例如,控制器可以与第一代理连接,并且第一代理可以识别具有通往附件的通信路径的第二代理。

示例性桥接器和隧道代理

在一些实施方案中,代理可以作为桥接器或隧道而工作,以方便控制器和一个或多个附件之间的通信,不论本地环境中是否有控制器。例如,家中安装的附件(例如,门锁)可以被配置为使用诸如蓝牙LE、ZigBee等短程无线通信协议通信,并且控制器可能走出附件的通信范围,同时仍然在家中。桥接器或隧道可以被放置在附件的通信范围之内,并可以支持附件使用的协议以及更长程的无线通信协议,诸如Wi-Fi。此外,控制器不必支持附件使用的协议;桥接器或隧道能够执行协议转换。因此,只要控制器处于桥接器或隧道的范围中,控制器就能够与附件通信。在一些情况下,桥接器或隧道还可以能够通过广域网(例如,互联网)通信,从而能够如上所述还充当本地环境中的附件和本地环境外部的控制器之间通信的代理。如本文所用,“桥接器”和“隧道”之间的区别在于,隧道能够提供控制器和附件之间的端到端安全(例如,允许控制器和附件通过隧道彼此建立配对验证会话),而桥接器提供控制器和桥接器之间的安全(例如,配对验证会话),但未必提供桥接器和附件之间的安全。

在一些实施方案中,桥接器可以方便与一个或多个可能不支持统一附件协议的附件进行通信。例如,一些制造商可能制造“集线器”设备,其能够控制其他设备的集合(本文称为“端点”或“端点附件”),诸如可以逐个控制以改变颜色、亮度等的灯泡集合。制造商可能已经定义了特定于设备的协议,以在集线器设备和端点之间实现通信。尽管如此,仍可能希望能够利用控制器和统一附件协议控制端点附件。因此,在一些实施方案中,集线器设备可被配置为充当控制器和端点附件之间的桥接器。图8示出了示例,其示出了根据本发明的一个实施方案的网络配置800。配置800允许控制器通过充当桥接器的代理与一个或多个附件通信。控制器802(1)和802(2)可以类似于图2的控制器202,端点附件804(1)-804(3)可以类似于图2的附件204。在该示例中,控制器802(1)当前位于具有附件804的本地环境806中;控制器802(1)被说成在附件804“本地”。控制器802(2)是当前位于本地环境806外部但连接到通信网络808(例如,互联网或另一种广域网)的“远程”控制器的示例。

本地环境806中还存在桥接器设备(或“桥接器”)810,其可以类似于上述代理设备510。桥接器810在该示例中也连接到通信网络808;然而,出于与本地控制器802(1)通信的目的,不需要通往网络808的连接。桥接器810像代理510那样,可以充当远程控制器802(2)和附件504之间的中继。桥接器810也可以充当本地控制器802(1)和附件104之间的中继。例如,控制器802(1)可以在本地环境806中,但在附件804(1)的通信范围外部;在那种情况下,控制器802(1)可以仍然在桥接器810的范围内,并且控制器802(1)可以通过向桥接器810发送消息来与附件804(1)通信。这可以类似于上述代理510的操作。

作为另一个示例,附件804(1)和控制器802(1)可能不支持相同的无线通信协议。例如,附件804(1)可能仅支持ZigBee,而控制器802(1)不支持ZigBee。在这种情况下,桥接器810可以充当协议转换器,以实现附件804(1)和控制器802(1)之间的通信。

作为例示,802(1)可以支持统一附件协议,其中每个附件被模型化为服务的集合,每个服务被定义为一组特性,每个特性在给定时间都具有定义的值,例如,如上文援引的美国临时申请61/935,967和美国申请14/614,914中所述。附件可以通过向控制器提供附件定义记录来向控制器描述自身,该附件定义记录可以是定义附件的服务和特性的结构化数据对象。根据特定的通信信道或传输,可以各种格式表示结构化数据对象。例如,在控制器和附件通过Wi-Fi或其他基于IP(网际协议)栈的协议通信时,可以使用JSON(JavaScript Object Notation);对于通过蓝牙LE通信的控制器和附件,可以使用蓝牙LE通用属性协议(GATT)。统一附件协议可以指定用于各种传输的数据对象格式。

因此,桥接器810能够构造附件数据库812,其包括对应于每个端点附件804(1)-804(3)的附件定义记录814(1)-814(3)以及针对桥接器自身的附件定义记录816。附件数据库812可以包括根据统一附件协议的规范格式化的结构化数据对象。

在一些实施方案中,桥接器810可以通过根据端点附件804(1)-804(3)支持什么协议来与每个端点附件804(1)-804(3)通信,以获得关于附件能力和当前操作状态的信息,从而构造附件数据库812。桥接器810可以应用映射逻辑以生成表示这一信息的结构化数据对象。在一些实施方案中,桥接器810可以针对特定类别的附件(例如,灯泡)而被配置,并且这样可以简化映射逻辑。桥接器定义记录816可以将桥接器自身表示为附件,并且它的存在对于控制器802而言可以是它们正与桥接器通信的标志。

在工作中,桥接器810能够相对于控制器802看起来是遵循统一附件协议的附件。例如,根据该协议,桥接器810可以例如基于桥接器附件定义记录816在网络上作为桥接器而通告自身(或广播其存在)。控制器802(1)(或控制器802(2))可以与桥接器810建立配对,之后像任何其他类型的附件那样连接到桥接器810,例如,建立配对验证会话。在连接时,控制器802(1)可以请求并从桥接器810接收附件数据库812(或其部分)。这样,控制器802(1)可以确定附件804的状态。在对读取请求作出响应以确定附件804的状态时,桥接器810可以实时查询附件,或者桥接器810可以周期性地轮询附件并更新状态。在一些实施方案中,控制附件804的唯一方式可以是通过桥接器810,在那种情况下,桥接器810可以仅在附件数据库812中维护状态信息。

除了读取附件信息,包括当前状态(由附件数据库812中的特性值表示)之外,控制器802(1)(或控制器802(2))还可以通过向桥接器810发送遵守统一附件协议的写入请求,以向一个或多个特性写入新值,从而改变附件例如附件804(1)的状态。桥接器810可以将写入请求转换成附件804(1)使用的协议,并且发送附件804(1)能够处理的对应指令。桥接器810还可以以符合统一附件协议的格式产生对写入请求的响应(例如,基于从附件804(1)接收的任何响应信号),并向控制器802(1)发送响应。

应当指出,经由桥接器810与端点附件804(1)-804(3)的通信可以安全或不安全;在图8中由连接桥接器810和附件804的虚线箭头表示这种情况。例如,如上所述,控制器802(1)或802(2)和桥接器810之间的通信可以符合统一附件协议,如上所述,其可以提供端到端安全。然而,根据使用的具体协议,桥接器810和端点附件804(1)-804(3)之间的通信可以是安全的或不安全的。因此,在桥接器810向控制器802将自身标识为桥接器时,控制器802能够假设桥接器810和附件804之间的信道不安全,并且能够作出相应动作。在一些实施方案中,桥接器810可能受到操作限制;例如,控制器802(2)可能不被许可在保持在本地环境806外部时访问桥接器,或者在控制器802(2)不在本地环境806中时,可以针对控制器802(2)禁用通过桥接器810进行的某些操作。

除了上述桥接器功能(例如,在不同协议之间转换)之外,还可能希望提供符合统一附件协议的端到端安全。在一些实施方案中,“隧道”可以在很多方面类似于桥接器,但在控制器和端点附件之间添加了端到端安全。例如,在控制器和附件都支持统一附件协议但正在使用不同传输的情况下,可以使用隧道。

图9示出了根据本发明的一个实施方案的网络配置900。配置900允许控制器通过充当隧道的代理与一个或多个端点附件通信。控制器902(1)和902(2)可以类似于图2的控制器202,并且端点附件904(1)-904(3)可以类似于图2的附件204。在该示例中,控制器902(1)当前位于具有附件904的本地环境906中;控制器902(1)被说成在附件904“本地”。控制器902(2)是当前位于本地环境906外部但连接到通信网络908(例如,互联网或另一种广域网)的“远程”控制器的示例。

本地环境906中还存在隧道设备(或“隧道”)910,其可以类似于上述代理设备510或桥接器设备810。隧道910在该示例中也连接到通信网络908;然而,出于与本地控制器902(1)通信的目的,不需要这样。隧道910像代理510那样,可以充当远程控制器902(2)和附件504之间的中继。隧道910也可以充当本地控制器902(1)和附件104之间的中继。例如,控制器902(1)可以在本地环境906中,但在附件904(1)的通信范围外部;在那种情况下,控制器902(1)可以仍然在隧道910的范围内,并且控制器902(1)可以通过向隧道910发送消息来与附件904(1)通信。这可以类似于上述代理510的操作。

为了描述隧道操作,假设至少针对IP传输(例如,Wi-Fi或其他基于互联网协议栈的无线传输)和蓝牙LE(“BLE”)传输定义了统一附件协议。假设IP传输具有更长的范围(例如,典型的家庭Wi-Fi网络可以从家中任何地方接入,而蓝牙LE通信的范围通常更短),而BLE传输在减小功耗等方面可能有优点。给定的控制器或附件可以被配置为在任一种或两种传输上支持统一附件协议;出于本目的,假设控制器902在IP和BLE传输上都支持统一附件协议,而附件904仅在BLE传输上支持统一附件协议。可以替换成其他传输和传输的组合。

类似于桥接器810,隧道910能够构造出附件数据库912,其包括对应于每个端点附件904(1)-904(3)的附件定义记录914以及针对隧道自身的附件定义记录916。附件数据库912可以包括根据统一附件协议的规范格式化的结构化数据对象。在一些实施方案中,附件数据库912可以定义用于IP传输的特定信息项的表示和用于BLE传输的特定项的表示之间的映射。例如,在一些实施方案中,根据IP传输的用于附件904(1)的附件定义记录可以向附件分配附件标识符(“AID”),并向附件的每个特性分配唯一的“实例”标识符(“IID”)。这些可以是相继的数字标识符(例如,从1开始)等。同时,根据BLE传输用于附件904(1)的附件定义记录可以被实现为GATT数据库,并可以向每个特性分配唯一的“属性句柄”。隧道910例如可以通过利用BLE传输与每个端点附件904通信以获得附件定义记录来构造数据库912(例如,符合蓝牙LE的GATT数据库),该附件定义记录包括针对每个特性的属性句柄和其他定义信息。基于所接收的附件定义记录,隧道910能够构造并存储(例如,在附件数据库912中)附件提供的每个特性的属性句柄和隧道910分配的对应(AID,IID)之间的映射。每个附件定义记录914还可以包括由隧道910定义的“隧道”服务的实例。隧道服务的特性可以包括隧道910通过附件904在BLE传输上的通告从对应附件904获得的信息项(例如,可以由控制器识别的附件标识符、如下所述的状态计数器值、附件的当前连接状态等)。在一些实施方案中,隧道910不接收或存储任何附件特性(除通告的特性之外)的值,这样可以防止拦截者通过读取附件数据库912来确定附件104的状态。隧道定义记录916可以将隧道自身表示为附件,并且它的存在对于控制器902而言可以是它们正与隧道通信的标志。这样可以影响控制器902如何对消息进行格式化以及操作的某些其他方面;下文描述了示例。

在一些实施方案中,在通过隧道910与附件904通信之前,控制器902可以首先使用BLE传输直接与附件904通信,以建立配对(例如,使用如上所述的配对建立或配对添加过程)。在其他实施方案中,控制器902可以通过隧道910与附件904建立配对。应当指出,在控制器902通过直接通信与附件904之一建立配对的情况下,这样可以帮助向控制器902提供一些确保,保证附件904实际确实在BLE传输上支持统一附件协议,使得可以预期通往附件的通信具有端到端安全性。(如果通过隧道910建立配对,隧道910可能“伪造”预期的附件响应,这是不希望出现的情况。)在控制器902接下来通过隧道910连接到附件904时,控制器902可以与附件904建立配对验证会话(如虚线920,922所示),保证了通信内容的安全,而不会被隧道910窃听。此外,在通过隧道910与附件904通信之前,可能需要控制器902与隧道910建立配对,从而可以在配对验证会话中保证控制器902和隧道910之间的所有后续通信安全。

图10是根据本发明的一个实施方案的过程1000的流程图,该过程用于在控制器,例如图9的控制器902(1),和附件,例如图9的附件904(1)之间,经由隧道,例如隧道910进行通信。过程1000可以例如在图9的隧道910中实现。假设隧道910已经利用BLE传输与一个或多个端点附件(例如,图9的附件904)通信,并已经构造了附件数据库912。在一些实施方案中,隧道910还在执行过程1000之前根据统一附件协议与每个附件904建立配对。进一步假设隧道910已经根据统一附件协议与至少一个控制器(例如,图9的控制器902(1)或902(2))建立配对。

在框1002,隧道910可以从配对的控制器902(1)(或控制器902(2))接收连接请求。例如,控制器902可以检测诸如Wi-Fi网络的IP网络上隧道910的存在,其中隧道910可以将其存在广播为作为隧道工作的附件。在框1004处,隧道910可以与请求控制器902(1)建立配对验证会话(例如,如上所述)。在框1006处,在配对验证会话内,隧道910可以从控制器902(1)接收请求,以读取附件数据库912中的一些或所有信息。在框1008处,隧道910能够向控制器902(1)提供所请求的信息。可以重复框1006和1008以允许读取附件数据库912中的任意或所有信息。如上所述,在一些实施方案中,附件数据库912中的信息包括表示各个附件当前状态的特性标识符和/或描述符,但不包括此类特性的当前值。在一些实施方案中,控制器902(1)可以继续进行操作而不从附件数据库912读取信息(例如,通过使用在先前通信会话中获得的信息),并可以省略框1006和1008。

在框1010处,隧道910可以从控制器902(1)接收指向端点附件(例如,附件904(1))的请求。在一些实施方案中,该请求可以是读取或写入附件904(1)的任何服务的任何特性的请求。例如,在一些实施方案中,符合统一附件协议的每个附件都具有配对服务,并且控制器902(1)可以向配对服务发送请求,以与附件904(1)执行配对验证操作。在框1012处,隧道910能够与附件904(1)建立通信会话。在一些实施方案中,该通信会话可以使用除统一附件协议之外的协议。例如,隧道910可以与附件904(1)执行蓝牙LE绑定,通信会话可以使用根据蓝牙LE规范保证安全的信道。也可以使用其他协议。在一些实施方案中,隧道910和附件904(1)之间的通信会话可以是根据统一附件协议的配对验证会话;该协议可以允许附件904(1)区分隧道和控制器,并且可以许可隧道从控制器中继消息,但不在其自身上发起控制消息。其他具体实施也是可能的,根本不需要保证隧道910和附件904(1)之间的信道安全。

在框1014处,隧道910可以开始在控制器902(1)和附件904(1)之间中继消息。可以通过中继消息,从而在控制器902(1)和附件904(1)之间提供端到端安全,而不论在隧道910和附件904(1)之间的信道上使用什么安全性(如果有的话)。

图11(针对读取请求)和图12(针对写入请求)中进一步例示了根据一个实施方案的消息中继。在这些示例中,假设已经在例如过程1000的框1004处,在控制器902(可以是图9的控制器902(1)或902(2)中的任一个)和隧道910之间建立配对验证会话。因此,已经建立会话密钥“A”作为控制器902和隧道910之间的共享秘密;密钥A可以在控制器902和隧道910之间的配对验证会话期间持续存在,并且可以用于对控制器902和隧道910之间的通信加密。还假设已经在例如过程1000的框1006处,在隧道910和附件904(可以是图9的附件902(1)-902(3)中的任一个)之间建立通信会话。可以使用安全措施“B”(例如,可以是与保证隧道910和附件904之间信道安全相关联的会话密钥或其他共享秘密)确保隧道910和附件904之间的会话。在一些实施方案中,可以不保证隧道910和附件904之间的信道安全,并且不需要安全措施B。

控制器902和附件904之间通过隧道910交换的通信可以包括来自控制器902,与在控制器902和附件904之间建立配对验证会话相关的请求,结果,可以建立会话密钥“C”作为控制器902和附件904之间的共享秘密。密钥C可以在控制器902和隧道910之间的配对验证会话期间持续存在,并且可以用于对控制器902和附件904之间的通信加密。应当指出,隧道910不会共享密钥C,因此不能读取任何利用密钥C加密的信息。

在一些实施方案中,已经建立会话密钥A和C(如果希望的话,还有安全措施B),可以在控制器902和附件904之间发送消息,使得隧道910能够在IP和BLE传输之间转换统一附件协议消息而不知道关于附件状态的信息(例如,特定特性的值)。图11示出了根据本发明的一个实施方案的经由隧道910的读取请求的通信。如图所示,控制器902可以产生IP读取请求1120,该请求符合针对IP传输实现的统一附件协议。例如,IP读取请求1120可以指定要读取的特定特性的附件标识符(AID)和实例标识符(IID)。控制器902可以基于例如在过程1000的框1006和1008从附件信息数据库912读取的信息,确定该请求的(AID,IID)。控制器902可以利用密钥A对IP读取请求1120加密,如圆1122所示。IP读取请求1120可以是从控制器向代理发送的“请求消息”的示例,以请求与附件交互(在这种情况下,读取附件特性的值以确定附件状态的方面)。

隧道910具有密钥A并且可以对IP读取请求1120解密。隧道910可以将解密的读取请求1120转换成符合为BLE传输实施的统一附件协议的BLE读取请求1124。例如,如图所示,可以基于附件数据库912中的信息利用对应的属性句柄(“ATTH”)替换读取请求1120的(AID,IID)。隧道910可以利用安全措施B向附件904发送BLE读取请求1124,如菱形1126所示。BLE读取请求1124可以是可从代理向附件发送的“指令消息”的示例,以响应于来自控制器的请求与附件执行交互(在这种情况下,读取附件特性的值以确定附件状态的方面)。

附件904具有安全措施B,并且能够读取BLE读取请求1124。附件904能够生成对BLE读取请求1124的响应。例如,附件904能够确定对应于BLE读取请求1124中包括的属性句柄ATTH的特性的状态,并且生成对应的值。附件904可以利用密钥C对该值加密,并且在BLE读取响应1130中包括加密的值1128;值1128的加密由圆1132表示。附件904可以利用安全措施B向隧道910发送BLE读取响应1130,如菱形1134所示。BLE读取响应1130可以是可以响应于从代理接收的指令消息从附件向代理发送的“指令响应消息”的示例。

隧道910具有安全措施B,并且能够读取BLE读取响应1130。隧道910没有密钥C,因此不能对值1128解密。相反,隧道910可以将解密的BLE读取响应1130转换成符合为IP传输实施的统一附件协议的IP读取响应1136。例如,如图所示,可以基于附件数据库912中的信息利用对应的(AID,IID)替换BLE读取响应1130的属性句柄ATTH。仍然利用密钥C加密的值1128如所接收地被包括在IP读取响应1136中。利用密钥A对IP读取响应1136加密,如圆1138所示。IP读取响应1136可以是可以响应于来自控制器的请求消息从代理向控制器发送的“响应消息”的示例;该响应消息可以基于代理从附件接收的指令响应消息。

控制器902具有密钥A并可以对IP读取响应1136解密。控制器904也具有密钥C,并且能够对值1128解密,从而获得所请求的信息。这样,隧道910可以在控制器902和附件904之间中继读取请求,而不必知道被读取特性的状态。

可以将类似技术用于写入请求。图12示出了根据本发明的一个实施方案的经由隧道910的写入请求的通信。如图所示,控制器902可以生成IP写入请求1220,该请求符合针对IP传输实现的统一附件协议。例如,IP写入请求1220可以指定要写入的特定特性的附件标识符(AID)和实例标识符(IID)。控制器902可以基于例如在过程1000的框1006和1008从附件信息数据库912读取的信息,确定该请求的(AID,IID)。IP写入请求1220还可以指定要向特性写入的值1222。控制器902可以利用密钥C对值1222加密,如圆1224所示,并可以在IP写入请求1220中包括加密的值1222。控制器902可以利用密钥A对IP写入请求1220加密,如圆1226所示。IP写入请求1220可以是可从控制器向代理发送的请求消息的另一示例,以请求与附件交互(在这种情况下,向附件特性写入值以更改附件状态的方面)。

隧道910具有密钥A并可以对IP写入请求1220解密。隧道910没有密钥C,因此不能对值1222解密。相反,隧道910可以将解密的IP写入请求1220转换成符合为BLE传输实施的统一附件协议的BLE写入请求1228。例如,如图所示,可以基于附件数据库912中的信息利用对应的属性句柄(ATTH)替换IP写入请求1220的(AID,IID)。仍然利用密钥C加密的值1222如所接收地被包括在BLE写入请求1228中。隧道910可以利用安全措施B向附件904发送BLE写入请求1228,如菱形1230所示。BLE写入请求1128可以是可从代理向附件发送的指令消息的另一示例,以响应于来自控制器的请求与附件进行交互(在这种情况下,向附件特性写入值以更改附件状态的方面)。

附件904具有安全措施B,并且能够读取BLE写入请求1228。附件904还具有密钥C并能够对值1222解密。附件904然后能够解释写入请求并采取适当的动作(例如,改变指定特性的状态,诸如打开灯泡)。附件904能够生成BLE写入响应1232,其可以指示请求是否成功,在失败的情况下,指示错误代码等。附件904可以利用安全措施B向隧道910发送BLE写入响应1232,如菱形1234所示。BLE写入响应1232可以是可以响应于从代理接收的指令消息从附件向代理发送的“指令响应消息”的另一示例。

隧道910具有安全措施B,并且能够对BLE写入响应1232解密。隧道910可以将解密的BLE写入响应1232转换成符合为IP传输实施的统一附件协议的IP写入响应1236。例如,如图所示,可以基于附件数据库912中的信息利用对应的(AID,IID)替换BLE写入响应1232的属性句柄ATTH。此外,如果BLE写入响应1232包括特定于BLE传输的状态代码,隧道910可以将该状态代码转换成特定于IP传输的(潜在不同的)状态代码。在一些实施方案中,独立于传输使用相同的状态代码,附件904能够利用密钥C对状态代码加密,使得隧道910不知道特定的写入请求成功还是失败。利用密钥A对IP写入响应1236加密,如圆1238所示。IP写入响应1236可以是可以响应于来自控制器的请求消息从代理向控制器发送的响应消息的另一示例;该响应消息可以基于代理从附件接收的指令响应消息。

控制器902具有密钥A,并且能够对IP写入响应1236解密,由此确定写入请求是成功还是失败。

这样,隧道910可以在控制器902和附件904之间中继读取和写入请求,而不必知道被读取和写入的特性的状态。还应该指出,在一些实施方案中,向隧道910和附件904之间的消息施加安全措施B可以是任选的。蓝牙LE作为传输而固有的安全特征,结合使用仅为控制器和端点附件所知的端到端会话密钥(例如,图11和图12中的密钥C)对特性值加密,可以为一些应用提供充分的安全性。

再次参考图10,只要需要就可以继续在框1014进行的消息中继,直到在框1018处,隧道910确定应当结束中继。各种条件可能导致确定应当结束中继。例如,可能对传输层或统一附件协议进行的会话持续时间有所限制(例如,在一定量时间之后,会话密钥可能会过期),如果对于控制器-隧道会话或控制器-附件会话而言达到这一时间极限,则可以结束中继。作为另一个示例,如果在某个超时期间中未发生任何活动,或者如果隧道910失去了与控制器902或附件904的连接,中继会话可以结束。作为另一个示例,控制器902或附件904可以向隧道910发信号通知应当结束中继会话。

在框1020处,隧道910可以关闭中继信道。关闭中继信道可以包括,例如,通知控制器902和/或附件904现在关闭信道,破坏隧道910持有的会话密钥副本(例如,图11和图12中的密钥A和B)或使其失效,或其他期望的操作。之后,过程1000可以结束;只要从控制器接收到另一个连接请求,过程1000就可以重新开始。

在一些实施方案中,隧道910还可以在端点附件904之一的状态改变时方便向控制器902发出通知。这些通知可以符合统一附件协议。例如,如在上文援引的美国临时申请61/935,967和美国申请14/614,914中所述,附件可以维护状态计数器(也称为“全局状态计数器”),其在附件状态改变时加一。在一些实施方案中,可以实现全局状态计数器,使得其在附件状态变化时加一,之后不再加一,直到控制器(可以是任何控制器)连接到附件并读取至少某项状态信息时(例如,附件的任意特性,不论读取的特性是否为改变的特性)。附件可以通过附件支持的传输上的设备发现服务广播或通告其全局状态计数器值。检测到广播或通告的控制器可以读取当前的全局状态计数器值并将当前值与来自先前连接的所存储值对比,为控制器检测变化提供了一种机制。在有变化的情况下,控制器可以连接到附件并发出附加的读取请求,以确定什么特定特性(或附件状态的方面)已经改变。

在一些实施方案中,附件还可以针对一些或所有其特性维护每个特性的状态计数器。针对给定特性的每个特性的状态计数器可以存储特性变化时全局状态计数器的值。在检测到全局状态计数器的变化之后,控制器可以读取控制器感兴趣的特性中的每个特性的状态计数器,以检测这些特性的任何变化。

在一些实施方案中,可以通过隧道910方便控制器读取全局和/或每个特性的状态计数器。例如,每个附件904都可以利用蓝牙LE通告来通告其全局状态计数器的值。隧道910可以接收该通告并更新附件数据库中包括的全局状态计数器的表示,例如,作为与附件相关联的隧道服务的部分。如上所述,该隧道服务可以提供附件通告的各种信息,例如包括允许控制器902将附件识别为具有已建立的配对的附件标识符,以及附件的全局状态计数器。

控制器902可以通过与隧道910通信来检测附件状态改变。例如,控制器可以连接到隧道910并读取由与特定附件相关联的隧道服务维护的全局状态计数器。基于该全局状态计数器,控制器可以确定附件状态是否改变;如果已改变,控制器可以通过隧道910向附件904发送附加的读取请求以获得详情。

作为另一个示例,控制器可以向要被通知针对特定端点附件的全局状态数变化的隧道注册。例如,控制器902(1)可以向隧道910发送请求消息以注册(或订阅)针对附件904(3)的通知。隧道910可以维护识别针对每个端点附件904注册的控制器902的信息。在隧道910(例如,基于来自附件904(3)的BLE通告)检测到附件904(3)的全局状态数变化时,隧道910可以向每个向附件904(3)订阅通知的控制器,包括控制器902(1)生成通知。例如,隧道910可以生成类似于由在控制器902和隧道910之间使用的传输(例如,IP传输)上支持通用附件协议的附件使用的通知消息的通知消息。这种通知消息可以是,例如,上文援引的美国申请14/614,914中描述的主动提供的HTTP响应。也可以使用其他通知技术。

一旦控制器902(1)已被通知附件904(3)的附件状态变化,控制器902(1)就可以例如通过利用上文参考图11所述的技术,发送读取请求,连接到附件904(3)(例如,经由隧道910),以获得详情。这样,隧道910可以意识到附件状态的某方面已经改变,而不知道关于什么特性已经改变或任何特性的当前状态的具体信息。因此,拦截者可能通过从隧道910提取数据仅获得关于附件的有限信息。

应当理解,本文所述的桥接器和隧道是例示性的,并且变型形式和修改形式是可能的。在控制器可以通过桥接器或隧道看到附件时,控制器可以决定直接还是经由桥接器或隧道与附件通信。例如,对于桥接器而言,如果控制器不支持附件支持的相同协议或传输,所有通信都可以通过桥接器进行。对于隧道而言,如果控制器与附件支持相同的协议和传输(例如,具有BLE传输的统一附件协议),控制器可以应用偏好规则(类似于上述过程600)以确定是直接与附件通信还是通过隧道通信。在一些实施方案中,偏好可以是始终偏好隧道(除非隧道暂时不可用),因为可以定位隧道以优化附件处所接收信号的信号强度,而来自控制器的信号强度可能高度取决于控制器的(可变)位置。在其他实施方案中,可以利用控制器处针对从附件接收的信号的当前信号强度的动态分析,确定偏好,基于当前信号强度是否超过阈值,作出是否使用隧道的决定,从而可以预期经由直接信道实现可靠通信。

桥接器或隧道可以将任意数量的控制器连接到一个或多个端点附件。在一些实施方案中,端点附件(或它们中的至少一个)可以物理地容纳于与实现桥接器或隧道功能的电路相同的结构中,但并非必须要这样。此外,本文使用的特定协议和传输仅仅是出于例示的目的;可以替换成其他协议和传输。

在一些实施方案中,由于直接和间接通信路径都可用,因此同一附件可能同时在多个路径上对控制器可见(例如,直接经由蓝牙LE,以及间接经由隧道或其他代理)。如果是这种情况,控制器可以使用附件提供的信息(例如,附件标识符和/或其他附件信息)以识别同一附件何时可以在多条路径上可见。控制器然后可以呈现用户界面,其中给定附件仅出现一次,不论在给定时间有多少通往附件的通信路径。

示例性协调器设备

上述实施方案提供了能够在控制器和附件之间中继消息的代理(包括桥接器和隧道)。在一些实施方案中,可以使用“智能”代理(也称为协调器)协调多个控制器之间的操作。根据具体实施,协调器还可以提供桥接和/或隧穿能力。

图13示出了根据本发明的一个实施方案的网络配置1300的示例。控制器1302和附件1304可以与图5中的控制器502和附件504类似或相同,并且在任何给定时间,控制器1302可以在本地环境1306中或在远程例如通过广域网1308(类似于图5的广域网508,可以是例如互联网)连接。

配置1300包括协调器1310,其可以在一些方面中类似于代理510(或桥接器810或隧道910)。例如,控制器1302可以经由协调器1310与附件1304通信。协调器1310还可以实施桥接,类似于上述桥接器810,和/或隧穿,类似于隧道910,以方便可能使用不同传输和/或协议的附件1304和控制器1302之间的通信。

协调器1310可以是能够将自己向附件1304呈现为控制器并且能够与控制器1302安全通信的任何设备。在一些实施方案中,协调器1310可以是预计会保持在本地环境1306中并且预计会加电并可在大部分或全部时间内用于通信的设备。(应当理解,协调器1310可能偶尔不可用,例如,结合软件或固件升级、停电或其他中断事件。)例如,协调器1310可以实现于台式计算机、Wi-Fi或接入点单元、专用附件控制基站、用于电视或其他电器的机顶盒(除了与电视或其他电器交互之外,其还可以实施基站功能)中,或符合需要的任何其他电子设备中。

在网络配置1300中,控制器1302可以被配置为只要可能就通过协调器1310与附件通信1304。因此,如图所示,处于本地环境1306中的控制器1302(1)与协调器1310通信,而不是直接与附件1304通信,像位于远程的控制器1302(2)和1302(3)那样。可以将任何控制器1302和附件1304之间的直接通信限于例如没有协调器1310的情况。

在一些实施方案中,可以使用协调器1310协调多个控制器1302对多个附件1304的访问。例如,并非在每个控制器1302和每个附件1304之间建立配对,每个控制器1302均可以与协调器1310建立配对,并且协调器1310可以与每个附件1304建立配对。还可以使用用于建立控制器-附件配对的相同配对建立和/或配对添加过程建立控制器-协调器配对,协调器充当附件的角色。为了进行协调器-附件配对,协调器可以担当控制器的角色。因此,协调器1310可以在与控制器(例如,控制器1302中的任一个)通信时将自身呈现为附件,并且在与附件(例如,附件1304中的任一个)通信时呈现为控制器。

在建立控制器-协调器配对以及一个或多个协调器-附件配对的情况下,协调器1310可以向控制器1302将自身呈现为“附件网络”,经由该附件网络,控制器1302可以访问协调器1310已经与之建立配对的所有附件1304的所有服务。例如,协调器1310可以呈现被模型化为“家庭”或其他环境的附件网络。该环境模型可以定义可以按照协调方式控制的附件1304的各种物理和/或逻辑分组。例如,环境模型可以基于其物理位置向环境中的位置分配附件。在一些实施方案中,该环境模型可以是物理环境(例如,家庭)的分层表示,其可以包括最低等级的对象(例如,房间),每个附件被分配到最低等级对象之一(例如,可以基于附件安装在哪里或其在哪里花费其大部分时间,将附件分配到房间)。可以将最低等级对象分组成更高等级的对象(例如,可以将房间分组成家庭之内的区域)。可以逐个或在环境模型的任意分层等级上控制网络中的附件(例如,关闭特定房间或区域中的所有附件)。作为基于物理的分组的补充或替代,环境模型还可以包括附件的其他逻辑分组,例如可能在一起使用的附件的“服务组”,并且在一些实施方案中,附件可以被分配给一个物理组和任意数量(包括零)的逻辑组。在一些实施方案中,该环境模型还能够提供“动作组”,其中触发事件或条件(例如,用户命令或可检测的事件,诸如一天中的时间)能够导致调用网络中若干附件的功能(例如,在用户上床睡觉时关灯或锁门)。在上文援引的美国临时申请62/005,764、美国临时申请62/094,391和美国申请14/725,912中描述了附件网络和环境模型的另外的示例。根据需要,附件网络或环境模型可以简单或复杂。

附件网络可以链接到控制器网络,控制器网络可以是一组具有访问附件网络的全部或部分的许可的控制器(例如,图13中的控制器1302)。例如,环境模型可以包括访问列表,访问列表识别具有访问附件网络的许可的控制器。不同的控制器可以具有不同等级的许可。例如,一些控制器可以具有编辑附件网络模型和/或向或从访问列表添加或移除其他控制器的许可。在一些实施方案中,可以在控制器之间对关于环境模型的信息进行同步;在上文援引的美国临时申请62/005,764、美国临时申请62/094,391和美国申请14/725,912中描述了许可和同步的示例。

协调器1310可以方便包括附件1304的附件网络的操作。例如,协调器1310可以为附件网络维护环境模型,并且可以向各控制器1302提供该模型(或其部分)。控制器1302可以通过与协调器1310交互而操作附件1304。

在一些实施方案中,协调器1310可以管理与附件网络或环境模型相关联的许可,以限制特定控制器1302对一些或所有附件1304的访问。在一些实施方案中,控制器1302可以优先通过协调器1310将所有请求都路由到附件1304,并且在一些实施方案中,附件1304可被配置为仅与协调器1310直接通信并忽略直接来自控制器1302的请求。这样可以允许协调器1310对访问附件1304进行许可和其他限制。

通过协调器1310使与附件的通信集中化能够简化控制器网络和/或附件网络(例如,控制器1302和附件1304)的管理。例如,如果获得了新附件,新附件仅需要与协调器1310建立配对,以便允许所有控制器1302能够访问新附件。类似地,如果获得了新控制器1302,新控制器1302仅需要与协调器1310建立配对,以允许新控制器能够访问所有附件1304。在具有多个控制器且可能有数十个附件的环境(例如,成员均具有多个设备的家庭)中,节省的时间可能相当可观。

应当指出,在配置1300中,可以许可一个或多个控制器(例如控制器1302(1))间接(通过协调器1310)间接与一个或多个附件(例如,附件1304(1))通信,无论控制器1302(1)是否在本地环境1306中。例如,如果控制器1302(1)已经与协调器1310建立配对,但未直接与附件1304(1)建立配对,可能会发生这种情况。在一些情况下,这样能够提供增强的安全性;例如,与协调器1310建立配对的附件能够拒绝建立任何其他配对。然而,可能有这样的情况:希望直接访问,并可以许可在特定附件,例如附件1304(1)和一个或多个控制器1302之间建立直接配对。例如,假设附件1304(1)为门锁,控制器1302(1)为移动电话。如果建立附件1304(1)和控制器1302(1)之间的直接配对,用户可以使用控制器1302(1)通过直接通信锁定或解锁附件1304(1),由此锁上或打开门。例如,在协调器1310暂时不可用的情况下,这可能是有用的。在一些实施方案中,可以使用协调器1310向附件1304(1)指示授权控制器1302中的哪个直接访问,附件1304(1)可以与被授权的控制器1302建立配对。在一些实施方案中,附件1304(1)可被配置为仅在协调器1310不可用时接受来自被授权控制器1302的直接通信。因此,一般的规则可以是,与附件1304的所有通信都通过协调器1310,基于每个附件和每个控制器作出例外处理。

协调器1310可以作为智能代理而工作,用于允许控制器操作附件,而不是简单地为代理510中继上述消息。即,如上所述,协调器1310可以与每个控制器1302建立配对,并且与每个附件1304建立配对。在控制器1302(1)例如接收到与特定附件,例如附件1304(1)交互的用户请求时,控制器1302(1)可以与协调器1310建立第一配对验证会话,并且通过第一配对验证会话向协调器1310提供其针对附件1304的指令。协调器1310可以接收指令,与附件1304建立第二配对验证会话,并且通过第二配对验证会话向附件1304发送适当的控制消息。与上述隧道910不同的是,协调器1310可以知道指令的内容,并且在一些实施方案中,发送到附件1304的消息不需要对应于控制器1302(1)提供的指令。例如,在与控制器1302(1)通信的同时,协调器1310还可以与另一个控制器(例如,控制器1302(2))通信。控制器1302(1)和1302(2)均可以向协调器1310提供针对附件1304的指令。协调器1310可以分析所接收的指令,例如,以检测并解决冲突,例如在控制器1302(1)指示协调器1310打开附件1304而控制器1302(2)指示协调器1310关闭附件1304的情况下。可以为协调器1310编程用于解决冲突的优先级规则或其他规则(例如,“打开”优先于“关闭”;来自具有管理员特权的控制器的指令优先于来自没有管理员特权的控制器的指令;等等)。协调器1310可以应用优先级规则以解决任何冲突,并且能够基于解决情况向附件1304传送指令。在从附件1304接收响应时,协调器1310可以确定是否向控制器1302(1)和/或控制器1302(2)发送对应的消息(或不同的消息)。作为另一个示例,协调器1310可以执行针对各控制器1302和/或附件1304建立的许可。例如,在控制器1302之一发送请求时,协调器1310可以应用决策逻辑以确定发送请求的控制器1302是否具有适当许可;如果没有,协调器1310可以拒绝请求。决策逻辑可以根据需要简单或复杂;例如,可以限制属于儿童的控制器在一天中的哪几个小时或多长时间可以操作特定附件(例如,电视),而父母的控制器可以具有不受限的访问,或者可以将与客人(例如,保姆)相关联的控制器限制为操作附件的特定子集。因此,协调器1310不限于充当控制器和附件之间消息的无源中继,而是可以主动干预,以解决冲突的指令,施行授予特定控制器或用户的特权或许可上可能存在的任何限制,等等。

示例性设备

可以在可为一般常规设计的电子设备中实施本文描述的实施方案。此类设备可以适于符合统一附件协议,该统一附件协议支持控制器(第一电子设备)能够用以控制附件(第二电子设备)的操作的命令和控制操作。在一些情况下,例如,对于上述协调器或代理而言,设备可以组合控制器和附件的特征或方面。

图14是根据本发明的一个实施方案的控制器1400的简化框图。控制器1400可以实施本文所述控制器功能、行为和能力中的任一种或所有,以及未明确描述的其他功能、行为和能力。控制器1400可以包括处理子系统1410、存储设备1412、用户界面1414、通信接口1416、安全存储装置模块1418和密码逻辑模块1420。控制器1400还可包括其他部件(未明确示出),诸如电池、电力控制器和可操作以提供各种增强能力的其他部件。在各种实施方案中,可以在台式计算机、膝上型计算机、平板电脑、智能电话、其他移动电话、可穿戴计算设备或具有任何期望形状因数的其他系统中实现控制器1400。此外,如上所述,可以将控制器1400部分实现于基站中,并且部分地实现于与基站通信并提供用户界面的移动单元中。

存储设备1412可以例如使用磁盘、闪存存储器或任何其他非暂态存储介质或介质组合来实现,并且可以包括易失性和/或非易失性介质。在一些实施方案中,存储设备1412可以存储要由处理子系统1410执行的一个或多个应用和/或操作系统程序,包括实施上文描述为要由控制器执行的各种操作的程序。例如,存储设备1412可以存储统一控制器应用,其可以读取附件描述记录并产生用于基于其中信息控制附件的图形用户界面(例如,如上文援引的美国临时申请61/935,967和美国申请14/614,914中所述)。在一些实施方案中,可以在操作系统程序而非应用中实现本文所述的控制器功能的部分(或全部)。在一些实施方案中,存储设备1412还可以存储针对特定附件或特定类别的附件设计的应用(例如,IP相机应用管理IP相机附件,或安全应用,以便与门锁附件交互)。

用户界面1414可包括输入设备诸如触控板、触摸屏、滚轮、点击轮、拨号盘、按钮、开关、小键盘、麦克风等;以及输出设备诸如视频屏幕、指示灯、扬声器、耳机插孔等,连同支持性电子器件(例如,数模转换器或模数转换器、信号处理器等)。用户可操作用户界面1414的输入设备以调用控制器1400的功能,并且可经由用户界面1414的输出设备来查看和/或收听来自控制器1400的输出。

处理子系统1410可被实现为一个或多个集成电路,例如一个或多个单核或多核微处理器或微控制器,这些微处理器或微控制器的示例在本领域中是已知的。在操作中,处理系统1410可控制控制器1400的操作。在各种实施方案中,处理子系统1410可响应于程序代码来执行各种程序,并且可维护多个同时执行的程序或过程。在任何给定时间,待执行的一些或全部程序代码可以驻留在处理子系统1410和/或诸如存储设备1412的存储介质中。

通过合适的编程,处理子系统1410可为控制器1400提供各种功能。例如,在一些实施方案中,处理子系统1410可以实施上文描述为由控制器实施的各种过程(或其部分)。处理子系统1410还可以执行其他程序来控制控制器1400的其他功能,包括可存储在存储设备1412中的应用程序;在一些实施方案中,这些应用程序可例如通过生成待发送至附件的消息和/或通过从附件接收响应来与附件进行交互。此类交互可以由例如,如上所述,附件管理守护进程和/或其他操作系统过程促成。

通信接口1416可为控制器1400提供语音和/或数据通信能力。在一些实施方案中,通信接口1416可以包括:用于访问无线语音和/或数据网络(例如,使用蜂窝电话技术、数据网络技术(诸如3G、4G/LTE、Wi-Fi)、其他IEEE 802.11系列标准,或其他移动通信技术,或它们的任何组合)的射频(RF)收发器部件、用于短范围无线通信(例如,使用蓝牙和/或蓝牙LE标准、NFC等)的部件和/或其他部件。在一些实施方案中,作为无线接口的补充或替代,通信接口1416可以提供有线网络连接性(例如以太网)。通信接口1416可使用硬件部件(例如,驱动电路、天线、调制器/解调器、编码器/解码器,以及其他模拟信号处理电路和/或数字信号处理电路)与软件部件的组合来实现。在一些实施方案中,通信接口1416可以使用相同的传输或不同的传输,同时或在不同时间支持多个通信信道。

安全存储模块1418可以是能够为控制器1400安全存储密码信息的集成电路等。可以在安全存储模块1418中存储的信息示例包括控制器的长期公钥和秘钥1422(上述LTPKC、LTSKC)以及配对附件1424的列表(例如,查找表格,该查找表格将附件ID映射到针对已经完成上述配对建立或配对添加过程的附件的附件长期公钥LTPKA)。

在一些实施方案中,可以在与安全存储模块1418通信的密码逻辑模块1420中实施密码操作。从物理上讲,可以根据需要在与安全存储模块1418相同的集成电路或不同的集成电路(例如,处理子系统1410中的处理器)中实现密码逻辑模块1420。密码逻辑模块1420可以包括各种逻辑电路(根据需要为固定或可编程的),逻辑电路实施或支持控制器1400的密码操作,包括上述任意或所有密码操作。安全存储模块1418和/或密码逻辑模块1420可以对于控制器1400的其余部分而言呈现为“黑盒子”。因此,例如,通信接口1416可以通过其不能解密的加密形式接收消息,并且能够简单地向处理子系统1410传送消息。处理子系统1410也可能无法对消息解密,但其能够将消息识别为加密的并将其传送到密码逻辑模块1420。密码逻辑模块1420可以对消息解密(例如,使用从安全存储模块1418提取的信息)并且确定向处理子系统1410返回什么信息。结果,可能仅在安全存储模块1418和密码逻辑模块1420内有特定信息。如果安全存储模块1418和密码逻辑模块1420实现于单个仅执行来自内部安全仓库的代码的集成电路上,这样可以使得信息提取极端困难,这可以提供高度的安全性。其他具体实施也是可能的。

图15是根据本发明的一个实施方案的附件1500的简化框图。附件1500可以实施本文所述的附件功能、行为和能力中的任一种或所有,以及未明确描述的其他功能、行为和能力。附件1500可以包括存储设备1528、处理子系统1530、用户界面1532、特定于附件的硬件1534、通信接口1536、安全存储模块1538和密码逻辑模块1540。附件1500还可包括其他部件(未明确示出),诸如电池、电力控制器和可操作以提供各种增强能力的其他部件。

附件1500表示可由控制器诸如控制器1400操作的一大类附件,并且此类附件在能力、复杂性和形状因数方面可能有很大不同。各种附件可包括图15中未明确示出的部件,包括但不限于具有固定或可移除存储介质的存储设备(磁盘、闪存存储器等);视频屏幕、扬声器或用于连接到外部音频/视频设备的端口;相机部件,诸如镜头、图像传感器和用于该图像传感器的控件(例如,孔径,缩放,曝光时间、帧速率等);用于记录音频的麦克风(单独地或与视频录制结合);等等。

存储设备1528可以例如使用磁盘、闪存存储器或任何其他非暂态存储介质或介质的组合来实现,并且可以包括易失性和/或非易失性介质。在一些实施方案中,存储设备1528可以存储要由处理子系统1530执行的一个或多个程序(例如,固件),包括实施上文描述为要由附件执行的各种操作以及与特定附件行为相关的操作的程序。存储设备1528还可以存储例如在设备发现期间能够向控制器设备供应的附件对象或附件定义记录,如上文援引的美国临时申请61/935,967和美国申请14/614,914中所述。存储设备1528还可以存储附件状态信息以及可以在附件1500操作期间使用的任何其他数据。

处理子系统1530可包括例如执行程序代码以便执行与附件1500相关联的各种功能的一个或多个单核或多核微处理器和/或微控制器。例如,处理子系统1530可以通过例如执行存储设备1528中存储的程序代码来实施上文描述为由附件实施的各种过程(或其部分)。处理子系统1530还可以执行其他程序以控制附件1530的其他功能。在一些情况下,处理子系统1530执行的程序可以例如通过产生要向控制器发送的消息和/或从控制器接收消息来与控制器(例如控制器1400)交互。

用户界面1532可包括用户可操作输入设备诸如触控板、触摸屏、滚轮、点击轮、拨号盘、按钮、开关、小键盘、麦克风等;以及输出设备诸如视频屏幕、指示灯、扬声器、耳机插孔等,连同支持性电子器件(例如,数模转换器或模数转换器、信号处理器等)。根据特定附件1500的具体实施,用户可以操作用户界面1532的输入设备以调用附件1500的功能,并且可经由用户界面1532的输出设备来查看和/或收听来自附件1500的输出。一些附件可以提供最小量的用户界面或根本不提供用户界面。在附件没有用户界面的情况下,用户仍然能够利用控制器(例如,控制器1400)与附件交互。

特定于附件的硬件1534可包括可存在于附件1500中以启用其功能的任何其他部件。例如,在各种实施方案中,特定于附件的硬件1534可包括使用固定或可移除存储介质的一个或多个存储设备;GPS接收机;电源和/或电源管理电路;相机;麦克风;一个或多个致动器;控制开关;环境传感器(例如,温度传感器、压力传感器、加速度计、化学传感器等)等等。应当理解,可以通过提供适当的特定于附件的硬件1534来支持任意类型的附件功能,特定于附件的硬件可以包括机械以及电气或电子部件。

通信接口1536可为附件1500提供语音和/或数据通信能力。在一些实施方案中,通信接口1536可以包括:用于访问无线语音和/或数据网络(例如,使用蜂窝电话技术、数据网络技术(诸如3G、4G/LTE、Wi-Fi)、其他IEEE 802.11系列标准,或其他移动通信技术,或它们的任何组合)的射频(RF)收发器部件、用于短范围无线通信(例如,使用蓝牙和/或蓝牙LE标准、NFC等)的部件,和/或其他部件。在一些实施方案中,作为无线接口的补充或替代,通信接口1536可以提供有线网络连接性(例如以太网)。通信接口1536可使用硬件部件(例如,驱动电路、天线、调制器/解调器、编码器/解码器,以及其他模拟信号处理电路和/或数字信号处理电路)与软件部件的组合来实现。在一些实施方案中,通信接口1536可以使用相同的传输或不同的传输,同时或在不同时间支持多个通信信道。

安全存储模块1538可以是能够为附件1500安全存储密码信息的集成电路等。可以在安全存储模块1538中存储的信息示例包括附件的长期公钥和秘钥1542(上述LTPKA、LTSKA)以及配对控制器1544的列表(例如,查找表格,该查找表格将控制器ID映射到针对已经完成上述配对建立或配对添加过程的控制器的控制器长期公钥LTPKC)。在一些实施方案中,可以省略安全存储模块1538;并且可以在存储设备1528中存储配对控制器的密钥和列表。

在一些实施方案中,可以在与安全存储模块1538通信的密码逻辑模块1540中实施密码操作。从物理上讲,可以根据需要在与安全存储模块1538相同的集成电路或不同的集成电路(例如,处理子系统1530中的处理器)中实现密码逻辑模块1540。密码逻辑模块1540可以包括各种逻辑电路(根据需要为固定或可编程的),逻辑电路实施或支持附件1500的密码操作,包括上述任意或所有密码操作。安全存储模块1538和/或密码逻辑模块1540可以对于附件1500的其余部分而言呈现为“黑盒子”。因此,例如,通信接口1536可以通过其不能解密的加密形式接收消息,并且能够简单地向处理子系统1530传送消息。处理子系统1530也可能无法对消息解密,但其能够将消息识别为加密的并将其传送到密码逻辑模块1540。密码逻辑模块1540可以对消息解密(例如,使用从安全存储模块1538提取的信息)并确定向处理子系统1530返回什么信息。结果,可能仅在安全存储模块1538和密码逻辑模块1540之内有特定信息。如果安全存储模块1538和密码逻辑模块1540实现于单个仅执行来自内部安全仓库的代码的集成电路上,这样可以使得信息提取极端困难,这可以提供高度的安全性。其他具体实施也是可能的。

附件1500可为与控制器1400进行交互的任何电子装置。在一些实施方案中,控制器1400可经由如上所述的附件1500的操作来提供远程控制。例如,控制器1400可以为附件1500提供远程用户界面,其可以包括输入和输出控件(例如,显示从附件1500获得的当前状态信息的显示屏,以及诸如触摸屏覆层的输入控件,以允许改变状态信息)。在各种实施方案中,控制器1400可以控制附件1500的任何功能并且还可以从附件1500接收数据。

应当理解,本文所述的系统配置和部件是例示性的,并且变型形式和修改形式是可能的。应当理解,控制器1400的具体实施可以执行上文描述为由控制器任意执行的任何或所有操作,并且附件1500的具体实施可以执行上文描述为由附件执行的任何或所有操作。代理、桥接器、隧道或协调器能够根据需要利用相同的硬件或不同的硬件组合控制器1400和附件1500的部件。控制器和/或附件可能具有本文并未明确描述的其他能力(例如,移动电话、全球定位系统(GPS)、宽带数据通信、互联网连接等)。根据具体实施,这些设备可以进行互操作,以便提供由任一(或两个)设备支持的任何功能或提供在每个设备中部分地实现的功能。在一些实施方案中,特定附件可能具有通过特定控制器无法访问或调用,但通过另一控制器或通过直接与附件交互能够访问的一些功能。

此外,尽管本文参考特定块描述了控制器和附件,但应当理解,定义这些块是为了描述的方便,而并非旨在暗示部件部分的特定物理布置。此外,块不必对应于物理上不同的部件。例如通过对处理器进行编程或提供适当的控制电路并且各个块根据获得初始配置的方式可为可重新配置的或不可重新配置的,块可被配置为执行各种操作。可在包括使用电路和软件的任何组合实现的电子设备在内的各种设备中实现本发明的实施方案。

另外的实施方案

虽然已结合具体实施方案对本发明进行了描述,但本领域的技术人员将认识到,许多修改形式是可能的。控制器网络和/或附件网络可以包括所需那样多或那样少的设备。不需要使用代理(包括桥接器或隧道代理)或协调器;不论附件数量或控制器数量是多少,(至少在原则上)始终能够在每个控制器和每个附件之间建立配对,并且使所有控制器通过直接控制附件而工作。在提供附件网络模型的情况下,每个控制器可以获得模型的副本并使用该模型,例如,通过至少部分地基于模型中包含的信息呈现用户界面,方便用户控制附件。

此外,在存在代理(包括桥接器和/或隧道)或协调器的情况下,可以但未必需要是这样的情况:许可所有控制器通过代理或协调器访问所有附件。一些控制器可能在不在本地环境中时受到限制而不能访问附件,一些附件可能需要控制器直接访问它们而不是通过代理或协调器。

在一些实施方案中,附件或附件网络的模型可以包括作为优选(或许可)代理或协调器的一个或多个控制器设备的标识。在一些情况下,可以在附件-网络模型之内指定多个协调器和/或代理。在附件-网络模型包括代理或协调器标识的情况下,这样可以方便另一控制器选择代理或协调器(例如,在图6中所示的过程期间)。

还应当理解,使用协调器可以但无需消除控制器与附件建立配对的需求。例如,在上述一些实施方案中,与附件的所有通信都可以由协调器居间介导。如果是这种情况,可能需要其他控制器与协调器配对但不与个体附件配对。在一些实施方案中,可能需要控制器与协调器配对,作为允许与附件网络上的附件通信的前提条件。例如,控制器可以执行配对建立以与协调器配对,协调器之后可以执行配对添加以添加控制器作为针对各个附件的授权控制器。

此外,一些实施方案可以基于每个用户而不是基于每个控制器管理安全性。例如,在上述实施方案中,每个控制器都可以具有其自己的长期公钥和长期秘钥而与任何其他控制器无关。在其他实施方案中,长期公钥/秘钥对可以被分配给用户(而不是特定控制器)并在属于该用户的所有控制器之间共享。例如,长期公钥/秘钥对可以与基于云端的数据服务上的用户账户相关联并传播到用户链接到账户的设备。可以实施适当的措施以安全地传播密钥对。在根据用户而非根据控制器管理长期密钥时,附件(或协调器)可以与用户而非控制器建立配对;之后,附件可以接受来自任何控制器设备的消息,该消息给出用户的标识符以及其具有用户的长期秘钥的充分证据。

可使用专用部件和/或可编程处理器和/或其他可编程设备的任意组合来实现本发明的实施方案。本文所述的各种过程可以任何组合方式在同一处理器或不同处理器上实现。在部件被描述为被配置为执行某些操作的情况下,可例如通过设计电子电路以执行操作、通过对可编程电子电路(诸如微处理器)进行编程以执行操作或它们的任何组合来实现此类配置。另外,尽管上述实施方案可能参考了具体硬件部件和软件部件,但本领域的技术人员应当理解,也可使用硬件部件和/或软件部件的不同组合,并且被描述为在硬件中实现的特定操作也可能在软件中被实现,或反之亦然。

结合本发明的各种特征的计算机程序可被编码并被存储在各种计算机可读存储介质上;合适的介质包括磁盘或磁带、诸如光盘(CD)或DVD(数字多功能光盘)的光学存储介质、闪存存储器以及其他非暂态介质。(应当理解,数据的“存储”不同于使用暂态介质诸如载波的数据传播。)可将利用程序代码编码的计算机可读介质与兼容的电子设备封装在一起,或者该程序代码可独立于电子设备被提供(例如,经由互联网下载或作为单独封装的计算机可读存储介质)。

因此,尽管已相对于具体实施方案描述了本发明,但应当理解,本发明旨在覆盖以下权利要求范围内的所有修改形式和等同形式。

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