使用虚拟网关和通配符的网关管理的制作方法

文档序号:10664003阅读:313来源:国知局
使用虚拟网关和通配符的网关管理的制作方法
【专利摘要】用于管理网关的系统、方法和介质。在实施方案中,生成虚拟网关,所述虚拟网关包括存储在至少一个远程物理网关上的一个或多个活动脚本和/或装置信息(例如,装置驱动器和/或针对装置、装置类型和/或装置组的定义和/或配置)中的每个的表示。提供至少一个用户接口,以用于编辑所述虚拟网关中表示的所述一个或多个活动脚本和/或装置信息中的每个。通过至少一个网络来自动维持所述虚拟网关中表示的所述一个或多个活动脚本和/或装置信息与存储在所述至少一个远程物理网关上的所述一个或多个活动脚本和/或装置信息之间的同步。
【专利说明】使用虚拟网关和通配符的网关管理
【背景技术】 发明领域
[0001] 本文中所述的实施方案大体涉及网关的管理,且更确切地说,涉及经由虚拟网关 对物理网关上的控制脚本和/或驱动器进行管理。
[0002] 相关技术描述
[0003] 机器对机器(M2M)系统的使用现在并且将持续是商业和社会的普遍关注方面。M2M 系统是物联网(Ι〇Τ)的整体部分,并且具有广泛的应用,包括监测和控制工业和建筑自动 化、智能设施、智能电网、智能城市、保健、酒店、食品服务等。
[0004] 在Μ2Μ和IoT生态系统中,机器对机器系统中的装置之间的通信可以使用位于装置 之间的网关装置来执行。网关装置也可以提供额外的服务,诸如,应用的安全执行,包括控 制、监测、报告和警告脚本;一个或多个装置、装置类型和/或装置组的配置和激活/停用;以 及以通信方式连接到网关装置的装置、装置类型和/或装置组的数据捕获和报告。
[0005] 作为简单的实例,在工业自动化的背景下,物理设施内的各种装置可以通信方式 连接到用于该设施的网关装置。这些装置可以包括传感器(例如,温度传感器、开启/闭合传 感器、锁定/解锁传感器)和可操作装置,诸如,门、窗户、锁、灯、大门、阀门等。网关装置可以 执行一个或多个控制脚本,所述控制脚本监测装置中的一个或多个(例如,通过接收来自温 度传感器的温度测量、接收门锁的状态等)并且基于其他装置和/或条件的监测来控制装置 中的一个或多个(例如,如果大门被打开则开灯、在某一时间开门或锁门、如果温度超出某 一阈值则发出警报等)。
[0006] 在分布式监测和控制系统中(例如,在大型设施或者多个地理上分散的设施上), 多个网关可以通过一个或多个网络(例如,互联网)与彼此和/或中央平台通信。在此类情形 中,可能存在必须要进行配置、安装、操作和管理的许多网关(例如,数百个)。这可能使得难 以确保每个网关和任何相关联的脚本和装置、装置类型和/或装置组被适当配置、测试、实 施、更新或备份,以保证预期的操作。
[0007] 因此,需要能够更有效地管理网关的技术,包括Μ2Μ、Ι〇Τ、基于云的系统和/或基于 分布式服务器的系统内的网关、脚本和装置、装置类型和/或装置组的定义、配置、测试、实 施、更新和恢复。

【发明内容】

[0008] 因此,公开用于管理网关的系统、方法和介质。
[0009] 在实施方案中,公开一种系统。所述系统包括:至少一个硬件处理器;以及一个或 多个模块,所述一个或多个模块在被所述至少一个硬件处理器执行时:生成虚拟网关,所述 虚拟网关包括存储在至少一个远程物理网关上的一个或多个活动脚本和活动装置信息(例 如,装置驱动器和/或针对装置、装置类型和/或装置组的定义和/或配置)中的每个的表示; 提供至少一个用户接口,以用于编辑所述虚拟网关中表示的所述一个或多个活动脚本和活 动信息中的每个;以及通过至少一个网络来自动维持所述虚拟网关中表示的所述一个或多 个活动脚本和活动装置信息与存储在所述至少一个远程物理网关上的所述一个或多个活 动脚本和活动装置信息之间的同步。
[0010]在另一实施方案中,公开一种方法。所述方法包括使用至少一个硬件处理器以便: 生成虚拟网关,所述虚拟网关包括存储在至少一个远程物理网关上的一个或多个活动脚本 和活动信息中的每个的表示;提供至少一个用户接口,以用于编辑所述虚拟网关中表示的 所述一个或多个活动脚本和活动装置信息中的每个;以及通过至少一个网络来自动维持所 述虚拟网关中表示的所述一个或多个活动脚本和活动信息与存储在所述至少一个远程物 理网关上的所述一个或多个活动脚本和活动装置信息之间的同步。
[0011]在另一实施方案中,公开一种存储有指令的非暂时计算机可读介质。所述指令在 被处理器执行时致使所述处理器:生成虚拟网关,所述虚拟网关包括存储在至少一个远程 物理网关上的一个或多个活动脚本和活动装置信息中的每个的表示;提供至少一个用户接 口,以用于编辑所述虚拟网关中表示的所述一个或多个活动脚本和活动装置信息中的每 个;以及通过至少一个网络来自动维持所述虚拟网关中表示的所述一个或多个活动脚本和 活动装置信息与存储在所述至少一个远程物理网关上的所述一个或多个活动脚本和活动 装置信息之间的同步。
【附图说明】
[0012] 通过研究附图可以部分收集本发明在结构和操作方面的细节,其中类似参考数字 指代类似部分,并且在附图中:
[0013] 图1示出根据实施方案的可以操作所公开的系统、方法和介质的实施方案的基础 设施;
[0014] 图2示出根据实施方案的用于将网关同步的系统;
[0015]图3示出根据实施方案的用于将脚本镜像和同步到多个网关的系统;
[0016] 图4示出根据实施方案的用于编辑网关的可编辑部件的过程;
[0017] 图5示出根据实施方案的用于将网关同步的过程;
[0018] 图6示出根据实施方案的用于将脚本中的通配符解引用的过程;以及
[0019] 图7示出根据实施方案的可以执行本文所述的过程中的一个或多个的处理系统。
【具体实施方式】
[0020] 在实施方案中,公开用于网关的管理的系统、方法和介质,包括虚拟网关、物理网 关、控制脚本和/或装置信息(例如,装置驱动器和/或针对装置、装置类型和/或装置组的定 义和/或配置)的执行、创建、配置、测试、实施、操作、更新、备份和恢复。在阅读本说明书之 后,所属领域的技术人员将明白如何在各个替代实施方案和替代应用中实施本发明。然而, 尽管本文中将描述本发明的各个实施方案,但应理解,仅通过实例和说明来呈现这些实施 方案,而不限制。因此,各个实施方案的本详细描述不应被解释为限制如所附权利要求书中 提出的本发明的范围或广度。
[0021] 分布式M2M和IoT生态系统的设计、测试、实施、操作和恢复方面存在至少五个主要 挑战:
[0022] (1)装置、装置类型和装置组标识、定义、配置、内容管理(curation)、操作、更新、 性能分析、恢复以及通信;
[0023] (2)用于装置和网关操作、监测、控制、性能分析、恢复和管理的脚本创建、操作/性 能测试、内容管理、实施以及更新;
[0024] (3)网关配置、创建、操作/性能测试、内容管理、实施、更新、恢复、性能分析以及管 理;
[0025] (4)有效的M2M和IoT生态系统设计、测试、实施、操作、恢复和管理;以及
[0026] (5)将新装置、装置类型、装置组、脚本、通信、控制协议和行业标准有效整合和实 施到Μ2Μ和IoT生态系统中。
[0027] 例如,通过下列一个或多个,本文中公开的某些实施方案解决这些挑战:
[0028] (1)为授权用户提供能力(例如,授予具体的访问、权限和许可,以便访问生态系统 中所选择的定义的物理和/或逻辑部件和/或执行生态系统中所选择的定义的物理和/或逻 辑功能),以便创建、定义和测试特定装置、装置类型和/或装置组的虚拟表示,从而使得这 些授权用户能够:
[0029] (a)针对特定的虚拟装置(例如,具体型号的恒温器)来定义属性、相关联的值以及 通信/控制协议(例如,BACnet、EnOcean、蓝牙低功耗等);
[0030] (b)针对特定类型的虚拟装置(例如,任何型号的恒温器)来定义属性、相关联的值 以及通信/控制协议;
[0031] (c)针对一组虚拟装置来定义属性、相关联的值以及通信/控制协议(例如,建筑 HVAC系统,其可包括,但不限于,一个或多个恒温器、锅炉控制器、C02气体检测器、气体截止 阀、冷却器控制器、水检测器、水截止阀、阻尼器控制器、占据检测器、阳光传感器等);
[0032] (d)针对虚拟装置、虚拟装置类型和/或虚拟装置组来定义用于通信/控制协议的 虚拟网关负载、处理、存储器和数据存储;和/或
[0033] (e)将通配符用于虚拟装置、虚拟装置类型和/或虚拟装置组,当在一个或多个物 理网关上激活并实施含有此类通配符的脚本时,所述虚拟装置、虚拟装置类型和/或虚拟装 置组被以通信方式连接到这些物理网关的特定物理装置、特定类型的装置和/或特定装置 组的标识符或其他表示自动替换("解引用"),从而使得分配给所述物理装置、装置类型和/ 或装置组的所有适用的相关联属性值自动更新到它们对应的虚拟表示中定义的那些; [0034] (2)为授权用户提供能力,以便在虚拟环境中创建、定义和测试脚本,包括:
[0035] (a)创建脚本并且分配受到所述脚本影响的虚拟装置、装置类型和/或装置组;
[0036] (b)测试脚本和它们相关联的虚拟装置、装置类型和/或装置组的操作和性能特 征;和/或
[0037] (c)创建脚本和相关联的虚拟装置、装置类型和/或装置组的库;
[0038] (3)为授权用户提供能力,以便创建、定义和测试虚拟网关,包括:
[0039] (a)针对特定的虚拟网关(例如,北校区10号楼1层的位置)来定义属性、相关联的 值以及通信/控制协议(例如,BACnet、EnOcean、蓝牙低功耗等);
[0040] (b)针对特定类型的虚拟网关(例如,具体型号的网关)来定义属性、相关联的值以 及通信/控制协议;
[0041] (c)针对一组虚拟网关(例如,北校区10号楼的位置)来定义属性、相关联的值以及 通信/控制协议;
[0042] (d)将一个或多个虚拟装置、装置类型和/或装置组分配给虚拟网关、虚拟网关类 型和/或虚拟网关组;
[0043] (e)从虚拟网关、虚拟网关类型和/或虚拟网关组中移除一个或多个虚拟装置、虚 拟装置类型和/或虚拟装置组;
[0044] (f)测试分配给虚拟网关、虚拟网关类型和/或虚拟网关组的虚拟装置、虚拟装置 类型和/或虚拟装置组的操作、性能、通信/控制协议的负载、处理、存储器和/或数据存储;
[0045] (g)单独和/或共同将脚本和相关联的虚拟装置、虚拟装置类型和/或虚拟装置组 分配给虚拟网关,以便测试虚拟装置、虚拟装置类型和/或虚拟装置组的操作、性能、通信/ 控制协议的负载、处理、存储器和/或数据存储;
[0046] (h)单独和/或共同将脚本和相关联的虚拟装置、虚拟装置类型和/或虚拟装置组 分配给虚拟网关类型,以便测试虚拟装置、虚拟装置类型和/或虚拟装置组的操作、性能、通 信/控制协议的负载、处理、存储器和/或数据存储;
[0047] (i)单独和/或共同将脚本和相关联的虚拟装置、虚拟装置类型和/或虚拟装置组 分配给虚拟网关组,以便测试虚拟装置、虚拟装置类型和/或虚拟装置组的操作、性能、通 信/控制协议的负载、处理、存储器和/或数据存储;
[0048] (j)针对虚拟网关、虚拟网关类型和/或虚拟网关组,激活一个或多个脚本和相关 联的虚拟装置、虚拟装置类型和/或虚拟装置组;
[0049] (k)针对虚拟网关、虚拟网关类型和/或虚拟网关组,停用一个或多个脚本和相关 联的虚拟装置、虚拟装置类型和/或虚拟装置组;
[0050] (1)针对虚拟网关、虚拟网关类型和/或虚拟网关组,维持活动和不活动虚拟装置、 虚拟装置类型和/或虚拟装置组的库;
[0051] (m)针对虚拟网关、虚拟网关类型和/或虚拟网关组,维持活动/不活动、草案、经验 证和未经验证脚本及相关联的虚拟装置、虚拟装置类型和/或虚拟装置组的库;以及 [0052] (η)单独和/或共同将一个或多个虚拟网关、虚拟网关类型和/或虚拟网关组分配 给计算环境,以识别所需的资源和它们的性能,以便设计、测试、最终确定、实施、管理和更 新有效支持Μ2Μ或IoT生态系统所需的物理环境;
[0053] (4)使得授权用户能够选择实施特定虚拟网关及其活动脚本、虚拟装置、虚拟装置 类型和/或虚拟装置组的一个或多个物理网关。如果将要在物理网关上实施的活动脚本引 用虚拟装置、虚拟装置类型和/或虚拟装置组,并且物理网关没有以通信方式连接到对应的 物理装置、物理装置类型和/或物理装置组,那么可以暂停虚拟装置、虚拟装置类型和/或虚 拟装置组的激活,直到物理网关与对应的物理装置、物理装置类型和/或物理装置组之间建 立通信为止。一旦已建立通信,物理装置、物理装置类型和/或物理装置组中的每个便可以 分别与其对应的虚拟装置、虚拟装置类型和/或虚拟装置组同步。装置、装置类型和/或装置 组的暂停将不影响所实施的活动脚本的操作:
[0054] (a)授权用户可以使用镜像来实施网关,在这种情况下,每当特定虚拟网关改变 和/或每当镜像物理网关的集合内的任何物理网关改变时,镜像特定虚拟网关的所有物理 网关都将自动同步;以及
[0055] (b)授权用户可以使用复制来实施网关,在这种情况下,根据作为配置的来源的虚 拟网关,实施该虚拟网关的复本的所有物理网关都将自动初始化。在实施方案中,针对每个 复制的物理网关,创建相关联的镜像虚拟网关。在复制的虚拟网关或者实施复本的物理网 关上激活的改变将在两者之间同步;
[0056] (5)使得授权用户能够选择实施虚拟网关类型及其活动脚本、虚拟装置、虚拟装置 类型和/或虚拟装置组的一个或多个物理网关类型:
[0057] (a)授权用户可以基于网关的类型使用镜像来实施网关,在这种情况下,每当特定 虚拟网关类型改变时和/或每当镜像类型的任何物理网关改变时,镜像特定虚拟网关类型 的那种类型的所有物理网关都将自动同步;以及
[0058] (b)授权用户可以基于网关的类型使用复制来实施网关,在这种情况下,根据作为 配置的来源的虚拟网关类型,属于该虚拟网关类型的复本的那种类型的所有物理网关都将 自动初始化。在实施方案中,针对每个物理网关类型,创建相关联的镜像虚拟网关类型。在 复制的虚拟网关类型或者实施复制的虚拟网关类型的物理网关上激活的改变将在两者之 间同步;
[0059] (6)使得授权用户能够选择实施虚拟网关组及其活动脚本、虚拟装置、虚拟装置类 型和/或虚拟装置组的一个或多个物理网关组:
[0060] (a)授权用户可以基于相关联的网关组使用镜像来实施网关,在这种情况下,每当 特定虚拟网关组改变时和/或每当该组中的任何物理网关改变时,镜像特定虚拟网关组的 组中的所有物理网关都将自动同步;以及
[0061] (b)授权用户可以基于相关联的网关组使用复制来实施网关,在这种情况下,根据 作为配置的来源的虚拟网关组,作为该虚拟网关组的复本的组中的所有物理网关都将自动 初始化。在实施方案中,针对每个物理网关组,创建相关联的镜像虚拟网关组。在复制的虚 拟网关组或者实施复制的虚拟网关组的物理网关上激活的改变将在两者之间同步;以及 [0062] (7)使得能够进行恢复:
[0063] (a)针对实施虚拟网关、虚拟网关类型和/或虚拟网关组的复本的物理网关、物理 网关类型和/或物理网关组:
[0064] (i)如果物理网关、物理网关类型和/或物理网关组由于通信问题而离线,那么当 它恢复在线时,它将分别与相关联的虚拟网关、虚拟网关类型和/或虚拟网关组自动同步; 和,
[0065] (ii)如果物理网关、物理网关类型和/或物理网关组由于系统故障而离线,那么当 它恢复在线时,它将分别自动下载相关联的虚拟网关、虚拟网关类型和/或虚拟网关组的最 近同步的复本;以及
[0066] (b)针对镜像虚拟网关、虚拟网关类型和/或虚拟网关组的物理网关、物理网关类 型和/或物理网关组,如果物理网关、物理网关类型和/或物理网关组由于通信问题或系统 故障而离线,那么当它恢复在线时,它将分别与镜像的虚拟网关、虚拟网关类型和/或虚拟 网关组自动同步,
[0067] 1.系统概述
[0068] 1.1.基础设施
[0069] 图1示出根据实施方案的用于控制脚本和/或驱动器的管理的示例系统。该系统可 包括平台110,该平台包括托管和/或执行本文所述的各种功能、过程、方法和/或软件模块 中的一个或多个的一个或多个服务器112的集合。应理解,平台110可包括可以或可不专用 于所公开的网关管理过程的云环境。在云环境中,诸如虚拟、逻辑和/或物理计算资源、存储 资源、安全资源、通信资源、管理资源等的资源可以在服务和应用之间共享和/或专用。
[0070] 此外,平台110可(例如,经由一个或多个部件,诸如,平台110的通信资源)以通信 方式经由一个或多个网络120连接到一个或多个网关130和/或一个或多个用户系统150,并 且也可以通信方式连接到一个或多个数据库114(例如,经由一个或多个网络,诸如,网络 120或专用网络,或者经由直接连接)和/或可包括一个或多个数据库114。网络120可包括互 联网,并且服务器112可以使用标准传输协议(诸如,超文本传输协议(HTTP)、安全HTTP (!^?3)、文件传输协议卬了?)、?了?安全$了?3)、33!1?了?(3?了?)等)以及专用协议通过互联 网来与网关130和用户系统150通信。还应理解,平台110的部件(例如,云资源,诸如服务器 112)可以但不要求并置。此外,尽管将平台110示为通过网络120的单个集合连接到各个系 统,但应理解,平台110可以经由一个或多个网络的不同集合连接到各个系统。还应理解,网 关130和/或用户系统150可以包括能够有线和/或无线通信的任何一个或多个类型的计算 装置,包括但不限于:台式计算机、膝上型计算机、平板计算机、智能电话或其他移动电话、 服务器、游戏主控台、电视机、机顶盒、电子广告亭、自动出纳机、销售点(P0S)终端、智能可 穿戴装置、医疗或保健装置、Ι〇Τ生态系统内的任何装置等等。此外,每个网关130可与一个 或多个装置和/或其他网关130以通信方式连接。尽管只示出了一些网关130、装置140和用 户系统130、一个平台110、服务器112的一个集合以及数据库114的一个集合,但应理解,基 础设施可以包括任何数量的网关、装置、用户系统、平台、服务器集合以及数据库。
[0071] 平台110可以包括托管一个或多个网站或网络服务的网络服务器。在提供网站的 实施方案中,网站可以包括一个或多个用户接口,例如,包括用超文本标记语言(HTML)或其 他语言(例如,基于图形和/或基于文本的语言)生成的网页。响应于来自用户系统150的请 求,平台110传输或服务这些用户接口。应理解,用户系统150可以包括能够有线和/或无线 通信的任何一个或多个类型的计算装置,包括但不限于:台式计算机、膝上型计算机、平板 计算机、智能电话或其他移动电话、服务器、游戏主控台、电视机、机顶盒、电子广告亭、自动 出纳机、销售点(P0S)终端、智能可穿戴装置、医疗或保健装置、IoT生态系统内的任何装置 等等。
[0072] 在一些实施方案中,可以采用向导程序的形式服务这些用户接口,在这种情况下, 两个或更多用户接口可以按顺序方式得到服务,并且顺序用户接口中的一个或多个可以取 决于用户或用户系统150与一个或多个先前用户接口的交互。对平台110的请求和来自平台 110的响应(包括用户接口)都可以使用标准通信协议(例如,HTTP、HTTPS)通过网络120进行 传送,所述网络可包括互联网。这些用户接口或网页可以包括内容和元素的组合,诸如,文 本、图像、视频、动画、引用(例如,超链接)、框架、输入(例如,文本框、文本区域、复选框、单 选按钮、下拉菜单、按钮、表单等)、脚本(例如JavaScript)等等,包括下列元素:该元素包 含或来源于存储在一个或多个数据库(例如,数据库114)或者平台110可本地和/或远程访 问的装置中的数据。平台11 〇也可响应于来自用户系统150的其他请求。
[0073] 平台110可以进一步包括、以通信方式耦接或者以其他方式访问一个或多个数据 库114。例如,平台110可以包括管理一个或多个数据库114的一个或多个数据库服务器。用 户系统150或者在平台110上执行的应用可以提交将要存储在数据库114中的数据(例如,用 户数据、表单数据等),和/或请求访问存储在此类数据库114中的数据(例如,如果是授权用 户请求的话)。可以使用任何合适的数据库,包括但不限于,任何关系型或非关系型数据库、 数据存储区、数据blob等等,包括基于云的数据库实例和专用数据库。例如,使用HTTP支持 的已知POST请求经由FTP、其他公共协议、专用协议等,数据可以发送到平台110。例如,该数 据以及其他请求可以由平台110执行的云侧和/或服务器侧网络技术处理,诸如,小服务程 序或其他软件模块。此外,平台110可以提供缓存,以便加速响应时间(例如,针对常见请 求)。
[0074]在提供网络服务的实施方案中,平台110可以接收来自用户系统150的请求,并且 用可扩展标记语言(XML)和/或任何其他合适或需要的格式提供响应。在此类实施方案中, 平台110可以提供定义了用户系统150可与网络服务交互的方式的应用编程接口(API)。因 此,本身可以是云环境和/或服务器的用户系统150可以定义它们自己的用户接口,并且依 赖于网络服务来实施或以其他方式提供本文所述的后端过程、方法、功能、存储等。例如,在 此类实施方案中,在一个或多个用户系统150上执行的客户端应用可以与在平台110上执行 的服务器应用交互,以便执行一个或多个本文所述的各种功能、过程、方法和/或软件模块 或者其中的一个或多个的一部分。客户端应用可能是"瘦"的,在这种情况下,处理主要由平 台110在云侧和/或服务器侧实施。瘦客户端应用的基础实例是在用户系统150处只请求、接 收和呈现网页的浏览器应用,而平台110负责生成网页和管理数据库功能。或者,客户端应 用可能是"胖"的,在这种情况下,处理主要由用户系统150在客户端侧实施。应理解,客户端 应用可以相对于平台110在沿着"瘦"与"胖"之间的这个范围的任何点处执行一些处理,取 决于特定实施的设计目标。在任一情况下,可以完全存在于平台110或用户系统150上或者 分布在平台110与用户系统150之间的应用可以包括实施本文所述的应用的过程、方法或功 能中的一个或多个的一个或多个可执行软件模块。
[0075] 1.2.网关同步和操作
[0076]尽管网关130可以包括能够与平台110通信的任何类型的装置,但在实施方案中, 每个网关130都是专用装置。此外,在实施方案中,每个网关130管理一个或多个以通信方式 连接的(例如,无线或有线)装置140。
[0077]图2示出根据实施方案的以通信方式与平台110连接的示例物理网关130。网关130 包括脚本管理器132、脚本引擎134和装置管理器136。平台110包括用户接口模块116、同步 模块118,并且可以访问虚拟网关130 '(例如,存储在平台110或另一平台中的数据库114 中)。应理解,可能存在平台110可访问的多个虚拟网关130'。每个虚拟网关130'都可包括物 理网关130的虚拟表示,包括脚本管理器132、脚本引擎134、装置管理器136和/或在物理网 关130上存储和/或执行的任何其他内容或数据。单个虚拟网关130'可以针对单独的物理网 关130或者两个或更多物理网关130的组(其可以是相同配置的,除了装置、装置类型和/或 装置组的数量和/或激活的差异之外)存在。例如,数据库114可以存储虚拟网关130'的标识 符与一个或多个镜像物理网关130的标识符之间的关联,所述镜像物理网关与或者应该与 该虚拟网关130'同步。
[0078]在实施方案中,当通过将第一虚拟网关130'复制到物理网关上来实施物理网关 130时,针对物理网关130创建唯一的第二虚拟网关并且该第二虚拟网关与该物理网关相关 联(例如,经由数据库114中的物理网关130的标识符与第二虚拟网关之间的存储关联)。应 理解,这个第二虚拟网关可以是第一虚拟网关130'的复本。或者,第二虚拟网关可以从头开 始创建,而不是从预先存在的第一虚拟网关复制。在任一情况下,第二虚拟网关在结构上都 可以与第一虚拟网关相同。然而,当第二虚拟网关是从第一虚拟网关130'复制时,根据以通 信方式连接到相关联的物理网关130的物理装置、装置类型和/或装置组,第一虚拟网关 130'中的任何脚本中的任何通配符可以在第二虚拟网关中解引用。随后,对第二虚拟网关 作出的任何改变都将被镜像在物理网关130中,并且物理网关130中的任何改变都将被镜像 在第二虚拟网关中。因此,不论是从头开始创建还是作为第一虚拟网关130'的复本的第二 虚拟网关都采用与第一虚拟网关130'相同的方式操作,除了它与一个特定的物理网关130' 相关联并且特定于该物理网关(例如,相对于该物理网关解引用),而第一虚拟网关130'与 一个或多个物理网关130相关联并且普遍用于所述物理网关。
[0079] 平台110上的用户接口模块116提供图形用户接口,以便于管理用户域中的每个网 关130、虚拟网关130'或者两个或更多物理网关130和/或虚拟网关130'的组。在实施方案 中,将每个虚拟网关130和与该虚拟网关130相关联的每个物理网关130(例如,包括与单 个虚拟网关130'或多个虚拟网关130'相关联的镜像物理网关130的组,例如,所述多个虚拟 网关分布在多个平台上)作为一对或集体管理。例如,平台110可以包括将网页供应给用户 系统150的网络服务器。这些网页可包括用于创建、更改(例如,编辑部件、改变部件的状态, 诸如,从活动到不活动等等)和/或删除网关130的部件的一个或多个输入。例如,网页可以 包括使得用户能够创建、更改或删除用于一个特定物理网关130及其相关联的虚拟网关 130'或者与特定虚拟网关130'或多个虚拟网关130'相关联的所有物理网关130的脚本的输 入。作为另一实例,网页可以包括使得用户能够针对一个特定物理网关130及其相关联的虚 拟网关130 '或者与特定虚拟网关130'或多个虚拟网关130'相关联的所有物理网关130的装 置管理器136来创建、更改或删除装置信息(例如,装置驱动器和/或针对装置、装置类型和/ 或装置组的定义和/或配置)的输入。在下文论述的实施方案中,针对每对镜像网关,同步模 块118确保添加、更改或删除的脚本和/或装置信息在物理网关130及其相关联的虚拟网关 130'中分别添加、更改或删除。
[0080] 在实施方案中,数据库114包括主脚本库和/或虚拟网关脚本库,其中任一个都可 以包括用户经由用户接口模块116可用的一个或多个主脚本。主脚本可包括通用脚本、指导 脚本、由增值分销商提供的脚本、许可脚本等等。例如,用户可以访问脚本的公共集合,和/ 或能够购买许可证以便访问和使用主脚本库内的各种脚本或脚本组。用户可以访问他们在 主脚本库中可访问的脚本(例如,他们被授权访问和/或更改的脚本),并且根据需要来更改 所述脚本,以便创建支持用户需要或需求的脚本。更改或未更改的脚本随后可以复制或镜 像到它们控制(即,用户域)内的物理网关130中。例如,用户可以从主脚本库中选择先前创 建的脚本、任选地更改脚本,以及将更改或未更改的脚本下载到用户域内的网关130并且激 活。在下文论述的实施方案中,到物理网关130的连接一可用,同步模块118就将该激活脚本 下载到对应物理网关130的脚本管理器132。在使用脚本中的通配符的实施方案中,如果激 活脚本包括任何通配符,那么这些通配符将被解引用,以便由以通信方式连接到物理网关 130的对应物理装置、物理装置类型和/或物理装置组的标识符替换。
[0081 ]平台110上的同步模块118提供虚拟网关130'与物理网关130之间的同步。如上文 论述,一个虚拟网关130'与一个物理网关130之间可以是一对一对应。例如,在虚拟网关 130 '被复制到特定物理网关130的情况下,该虚拟网关130 '可被复制,它的脚本中的任何通 配符可以解引用,并且虚拟网关130'的复本可以与一对一对应的特定物理网关130独特关 联。此外,一个虚拟网关130'与多个物理网关130之间可以是一对多对应,或者多个虚拟网 关130'与一个或多个物理网关130之间可以是多对一或多对多对应。例如,当选择将一组物 理网关130镜像到特定虚拟网关130'或多个虚拟网关130'时,可能出现这种情况。然而,应 理解,单个物理网关130可以被镜像到特定虚拟网关130',从而导致一对一对应,类似于得 自将虚拟网关130 '复制到物理网关130的一对一对应。在实施方案中,唯一的区别可能在 于,当虚拟网关130'被复制到物理网关130时,平台110上的虚拟网关130'的复本中的任何 脚本都相对于物理网关130解引用,而当物理网关130被镜像到虚拟网关130'时,平台110上 的虚拟网关130'的脚本没有解引用。在后一种情况下,当被镜像到虚拟网关130'的物理网 关130与虚拟网关130'同步时,任何下载的脚本都可在物理网关130处解引用(或者在被下 载到物理网关130之前,在平台110处解引用),而平台110上的虚拟网关130'中的脚本可以 继续包括任何通配符。因此,无论虚拟网关130'的属性如何,由同步模块118执行的同步可 以相同,但应理解,当虚拟网关130'包括通配符时,脚本可能需要解引用(例如,由同步模块 118或另一模块,诸如脚本管理器132或脚本引擎134解引用)。因此,无论虚拟网关130'的属 性如何,该虚拟网关130'与其一个或多个相关联的物理网关130之间的同步在本文中都可 称为"镜像",并且这些相关联的物理网关130在本文中可称为"镜像网关"或"镜像物理网 关"。
[0082] 在实施方案中,每当对虚拟网关130'和/或与虚拟网关130'相关联的任何物理网 关130中将要同步的模块中的一个(例如,脚本管理器132、脚本引擎134和/或装置管理器 136)作出改变时,自动执行同步。例如,如果在虚拟网关130'的脚本管理器中更改了脚本 (例如,经由用户接口模块116),那么同步模块118可以自动下载或更改任何相关联的物理 网关130的脚本管理器132中的对应脚本。类似地,如果将装置驱动器、虚拟装置、虚拟装置 类型和/或虚拟装置组添加到虚拟网关130'的装置管理器,那么同步模块118可以自动将装 置驱动器、对应的物理装置、对应的物理装置类型和/或对应的物理装置组分别添加到任何 相关联的物理网关130的装置管理器136。
[0083]只要平台110与网关130之间存在连接210,同步模块118便可继续与每个镜像网关 130同步。如果平台110与镜像网关130之间的连接丢失,那么在平台110与镜像网关130之间 的连接210可以重新建立之后,同步模块118就可执行同步。在这种情况下,与当前没有建立 连接210的镜像网关130相关联的虚拟网关130'充当容器,该容器保存在连接210建立之后 将由同步模块118实施的物理网关130的配置。在替代或额外的实施方案中,可以手动执行 同步(例如,响应于用户操作)和/或半自动执行同步(例如,在响应于提示后遵循用户确 认)。
[0084]应理解,尽管图2将虚拟网关130'示为包括相关联的镜像物理网关130的脚本管理 器132、脚本引擎134和装置管理器136的虚拟表示,但虚拟网关130'可以包括镜像物理网关 130的更多或更少部件的虚拟表示,取决于给定的设计中需要同步哪些元件。例如,在实施 方案中,只有活动脚本和/或装置信息(例如,装置驱动器和/或针对装置、装置类型和/或装 置组的定义和/或配置)可以在虚拟网关130'与镜像物理网关130之间同步。在此类实施方 案中,虚拟网关130'只需要包括与本地存储在相关联的镜像物理网关130上的对应活动脚 本、物理装置、物理装置类型、物理装置组和/或装置驱动器同步的脚本列表、虚拟装置、虚 拟装置类型、虚拟装置组和/或装置驱动器。在虚拟网关130'本身可执行(例如,在云中可执 行)的实施方案中,公共或共享脚本引擎可用来在平台110处执行来自多个虚拟网关130 '的 脚本。
[0085]物理网关130上的脚本管理器132管理用于控制以通信方式连接到镜像物理网关 130的一个或多个物理装置140、物理装置类型和/或物理装置组的脚本。在实施方案中,脚 本管理器132将活动脚本存储在物理网关130上的存储器的本地数据库中。脚本管理器132 可以订阅平台11〇(即,被镜像到平台110上的虚拟网关130'),从而使得同步模块118维持与 物理网关130相关联的虚拟网关130'的活动脚本的至少子集与本地存储在物理网关130的 存储器中的脚本之间的同步。因此,每当将活动脚本添加到虚拟网关130 '时,同步模块118 也经由连接210将该脚本传输到每个镜像物理网关130的脚本管理器132,从而使得脚本被 本地存储在每个镜像物理网关130上并且远程存储在虚拟网关130'中。同样地,每当从虚拟 网关130'中删除或停用脚本时,同步模块118也经由连接210请求从每个镜像物理网关130 的脚本管理器132中删除或停用该脚本,从而使得从虚拟网关130'和物理网关130中删除该 脚本。此外,每当在虚拟网关130'中更改活动脚本时,同步模块118经由连接210与每个镜像 物理网关130的脚本管理器132通信,以便对物理网关130上的脚本的本地存储复本实施相 同的更改(例如,通过替换本地脚本或者通过将表示递增更改的delta应用到本地脚本)。应 理解,通过类似的方式,同步模块118可以实现虚拟网关130'中的改变,以便使虚拟网关 130'与相关联的镜像物理网关130处的更改或改变同步。
[0086]在实施方案中,同步模块118只将虚拟网关130'中的活动和/或经验证脚本与存储 在镜像物理网关130上的脚本同步。例如,虚拟网关130 '中的脚本可与"活动"或"不活动"的 状态相关联。"不活动"状态表明脚本不应在虚拟网关130'及其相关联的镜像物理网关130 中执行,而"活动"状态表明脚本应在虚拟网关130'及其相关联的镜像物理网关130中执行。 当将来自虚拟网关130'的脚本同步到相关联的镜像物理网关130时,同步模块118可以避免 将具有"不活动"状态的任何脚本同步到镜像物理网关130。或者,同步模块118可以将不活 动脚本添加到镜像物理网关130,但具有"不活动"状态。此外,如果虚拟网关130'中的脚本 从"活动"变成"不活动",那么同步模块118可以在镜像物理网关130中将脚本的状态改成 "不活动",或者从镜像物理网关130中删除该脚本。
[0087] 同步模块118可以采用类似的方式处理经验证和未经验证脚本。经验证脚本是已 被验证为采用预期方式操作的那些脚本,而未经验证脚本是没有被验证为采用预期方式操 作的那些脚本。例如,未经验证脚本可包括不完整和/或未测试的脚本,仍处于开发或调试 的过程中。在实施方案中,同步模块118没有将未经验证脚本从虚拟网关130'镜像到镜像物 理网关130。或者,用户可以指定未经验证脚本是否应被镜像在物理网关130上(例如,通过 将脚本的状态设置为"活动"或"不活动",如上文所述)。
[0088]在实施方案中,物理网关130上的脚本管理器132将本地存储的脚本提供作为脚本 引擎134的输入。脚本引擎134可包括执行输入脚本的虚拟机。在实施方案中,物理网关130 还可包括置于脚本管理器132与脚本引擎134之间或者包括在其中一个内的编译器。在此类 实施方案中,存储在物理网关130上的脚本可以存储为通过编译器馈送的源代码,并且输出 为将由脚本引擎134的虚拟机执行的虚拟机代码。在实施方案中,脚本引擎134的虚拟机并 行提供多个脚本的线程执行。
[0089] 在实施方案中,脚本引擎134与装置管理器136对接,而该装置管理器又经由有线 和/或无线连接与装置140对接。装置管理器136可包括用于与装置140、装置类型和/或装置 组通信和交互的一个或多个驱动器。装置140实际上可以包括任何类型的装置或装置组以 及装置类型或组的组合,包括但不限于:传感器(例如,运动传感器、温度传感器、湿度传感 器、气压计、开启/闭合传感器、锁定/解锁传感器等)、锁(例如,门锁或窗户锁)、门、窗户、 灯、供热通风与空气调节单元(HVAC)、自动售货机、自动出纳机(ATM)、销售点(P0S)终端、安 全系统和部件、灌溉系统和部件、水池或温泉浴场、水龙头、家用电器(例如,烘箱、冰箱、洗 衣机等)、电系统和部件、气体系统、打印机、电视机、扬声器、大门、锅炉、加热系统、冷却器、 制冷系统、医疗或保健可穿戴设备和系统等。装置管理器136可以使用有线通信(例如,经由 网关130中的物理端口)和/或无线通信(例如,BACnet、Modbus、LonWorks、EnOcean、蓝牙低 功耗(BLE)、Wi-Fi,诸如,802.11&/13/^/11/&。、町^低功耗、2-此^5、21 8866*、81脱切〇让?、 近场通信(册〇^价、6?10、行业标准或专用协议等)与装置140通信。在实施方案中,网关 130包括使网关130有能力经由一个或多个无线技术进行通信的一个或多个收发器(例如, 天线)。
[0090] 根据需要,可以添加、更改和/或从装置管理器136移除装置信息(例如,装置驱动 器和/或针对装置、装置类型和/或装置组的定义和/或配置),取决于需要与物理网关130通 信的装置140、装置类型和/或装置组。例如,第一装置驱动器可以添加到装置管理器136,以 便与第一装置通信和管理该第一装置,并且第二装置驱动器可以添加到装置管理器136,以 便与第二不同的装置通信和管理该第二装置。同样的情况可用于不同的装置类型和装置 组。此外,当不再需要时(例如,当网关130不再需要与某一装置、装置类型或装置组通信 时),可以从装置管理器136中移除装置信息。
[0091] 装置信息可以被实施为装置管理器136的插件软件模块,从而使得每个装置、装置 类型、装置组和装置驱动器在需要时可以容易添加、更改和/或从装置管理器136中移除。有 利的是,这使得系统的特征和支持(即,网关130和平台110)与单独装置140、装置类型和装 置组的特征和支持分开。换言之,系统的新特征(以及用于这些和更老特征的技术支持)不 会影响装置140、装置类型和装置组,因为针对这些装置、装置类型和装置组可以维持更老 的配置(例如,驱动器)。相反,装置140、装置类型和装置组的新特征(以及用于这些和更老 特征的技术支持)不会影响系统,因为更老的配置可以继续与受影响的装置、装置类型和装 置组适当操作,或者可容易用更新的配置替换老配置(即,通过将新装置、装置类型、装置组 和/或装置驱动器插入到装置管理器136,以代替或补充老的装置、装置类型、装置组和/或 装置驱动器)。
[0092] 如上文论述,装置管理器136中的装置信息(例如,装置驱动器,和/或针对装置、装 置类型和/或装置组的定义和/或配置)可以经由同步模块118而与虚拟网关130'的装置管 理器中的装置信息同步。因此,如果装置信息添加到物理网关130,那么该装置信息也添加 到相关联的虚拟网关130',且反之亦然。类似于脚本,装置信息可以与状态相关联,诸如, "不活动"或"活动"(例如,特定装置、装置类型和/或装置组的定义和/或配置可以设置为 "不活动"或"活动"),并且根据这些状态,同步模块118可以将物理网关130的装置管理器 136中的装置信息与虚拟网关130'的装置管理器中的装置信息同步。
[0093]装置管理器136提供接口,以便接收来自一个或多个装置140、装置类型和装置组 的数据,和/或将数据发送到一个或多个装置140、装置类型和装置组。例如,装置管理器136 可以接收来自传感器装置140的传感器数据(例如,来自温度传感器的温度测量、来自开启/ 闭合传感器的二进制值、开关的状态、表示来自运动传感器的运动的检测的值等)。此外,装 置管理器136可以将指令或命令发送到可操作装置140(例如,让锁紧装置打开或关闭门上 的门栓的命令、让照明装置打开或关掉泛光灯的命令等)、装置类型(例如,改变所有恒温器 上的温度)或者装置组(例如,重置HVAC系统中的所有装置和装置类型的值)。由装置管理器 136从装置140、装置类型和装置组接收到的数据可以提供作为在脚本引擎134上执行的一 个或多个活动脚本的输入,而在脚本引擎134上执行的一个或多个活动脚本的输出可以由 装置管理器136发送作为或转换成至一个或多个装置140、装置类型和装置组的指令、命令 或其他数据。通过这种方式,在脚本引擎134上执行的活动脚本(例如,作为并行线程执行的 多个活动脚本)可以控制活动装置140、装置类型和装置组和/或作出反应。
[0094] 在实施方案中,装置管理器136检测不可用和/或缺失的装置、装置类型和装置组。 例如,装置管理器136可以实施常规心跳特征或者检测每个装置140、装置类型和/或装置组 的通信连接的丢失的其他方法。在装置管理器136检测到应该和/或先前具有连接的装置、 装置类型和/或装置组不再连接的情况下(例如,在建立连接的预定尝试次数之后或者在连 接丢失的预定持续时间之后),装置管理器136可以执行错误处理,可包括生成警报(例如, 用户接口消息、电子邮件消息、文本消息等),以通知一个或多个接收者该故障。
[0095] 1.3.虚拟网关的利用
[0096]由于上述同步过程的结果,每个镜像物理网关130与平台110处的虚拟网关130' (例如,存储在数据库114中并且由平台110操作)或者可在一个或多个平台110上实例化的 多个虚拟网关130 '相关联。在没有连接故障的情况下,与镜像网关130相关联的虚拟网关 130'将准确反映每个镜像网关130的当前配置。例如,虚拟网关130'将至少识别在相关联的 镜像网关130上活动的每个脚本和装置信息(例如,装置驱动器和/或针对装置、装置类型 和/或装置组的定义和/或配置)。在出现连接故障的情况下,虚拟网关130'可能无法准确镜 像相关联的镜像网关130的当前配置,但此类不准确是暂时的,并且一旦建立了与相关联的 镜像网关130的连接,则将得到解决。虚拟网关130'的准确连续更新属性提供若干利用机 会。
[0097] 1.3.1.备份和恢复
[0098]由于每个虚拟网关130'镜像相关联的物理网关130,因此,如果出现故障,则虚拟 网关130'可以用作相关联的镜像物理网关130的备份。具体而言,在镜像物理网关130经历 故障或者被新的物理网关130替换(例如,经由热插拔)的情况下,与该镜像物理网关130相 关联的虚拟网关130'可以用来将恢复或替换网关130恢复成适当的最新配置。这个备份和 恢复过程可以是自动、半自动或手动的。应理解,备份和恢复过程的功能可以通过平台110 的用户接口模块116提供的图形用户接口来执行和/或设置。
[0099] 1.3.2.快照
[0100] 此外,一个或多个虚拟网关130'可被存储作为相关联的镜像网关130的快照或恢 复点。例如,给定的物理网关130或物理网关130的组可以与多个虚拟网关130 '相关联,每个 都表示该物理网关130或该组物理网关130在不同时间点的配置(例如,包括一个或多个过 去时间以及当前时间)。因此,物理网关130的配置可以恢复到由多个相关联的虚拟网关 130'中的一个表示的任何时间点。应理解,快照过程的功能可以通过平台110的用户接口模 块116提供的图形用户接口来执行和/或设置。
[0101] 1.3.3.基于云的网关
[0102] 同步的虚拟网关130'的另一结果是针对给定物理网关130的活动装置、装置类型 和/或装置驱动器的活动脚本和/或装置驱动器和/或管理的执行可以卸载到平台110。例 如,在平台110是云平台(即,利用共享或专用虚拟和/或物理资源的公共或专用平台)的实 施方案中,针对给定物理网关130的活动装置、装置类型和/或装置驱动器的活动脚本和/或 装置驱动器和/或管理的执行可以"在云中"实施。在此类实施方案中,物理网关130可以仅 仅向装置140、装置类型和装置组提供电子接口,而控制处理由平台110上的脚本引擎执行, 和/或与装置140、装置类型和/或装置组的通信由平台110上的装置管理器管理。例如,这可 用于瘦网关130的实施,或者如果物理网关130中的内部故障不影响与装置140的通信的能 力的话。在此类故障的情况下,平台110中的恢复模块可以自动切换或开始物理网关130到 瘦网关的切换,其中脚本执行和/或装置管理被卸载到平台110。
[0103] 在实施方案中,用户可以指定某些物理网关130的一个或多个功能应使用它们相 关联的虚拟网关130'在云中执行。应理解,在这种情况下,物理网关130可以从开始就被初 始化为基于Ζ5Γ的网关,其中它们功能中的一个或多个是基于75Γ的(即,由相关联的虚拟网关 130'执行)。
[0104] 1.3.4.初始化
[0105] 此外,虚拟网关130'可以用来快速配置或初始化新的物理网关130(例如,新购买 的网关、从停电、硬件故障中恢复的网关等)。具体而言,在新网关将采用与先前配置的网关 130相同的方式配置的情况下,新网关可以只和与该先前配置的网关130相关联的虚拟网关 130'同步或者添加到由同步模块118自动且持续与虚拟网关130'同步的网关类型或网关 组。或者,该虚拟网关130'可以复制到新物理网关130,以便生成与新物理网关130独特关联 的虚拟网关130'(例如,在平台110处)的新(例如,解引用)复本。在这种情况下,虚拟网关 130'的新复本可以自动并且持续与新物理网关130同步。
[0106] 1.3.5.网关网络门户
[0107] 此外,在实施方案中,虚拟网关130'结合平台110上的用户接口模块116可以充当 至相关联的物理网关130的网络门户。具体而言,基于虚拟网关130'构建的图形用户接口可 以由用户用来管理虚拟网关130'(例如,编辑虚拟网关130')。由于被管理的虚拟网关130' 中的改变通过同步模块118而与相关联的镜像物理网关130同步(例如,自动且持续同步), 因此,虚拟网关130'的管理也是相关联的镜像物理网关130的管理。换言之,由于虚拟网关 130 '中的改变在相关联的镜像物理网关130中重复,因此,虚拟网关130 '及其相关联的镜像 物理网关130由用户经由用户接口模块116通过虚拟网关130'的管理来同时管理。然而,应 理解,在替代或额外的实施方案中,平台110上的用户接口模块116可以只结合每个镜像物 理网关130起作用,以便生成用于物理网关的网络门户(例如,通过查询每个网关130的状态 和/或配置,以及根据查询结果动态生成图形用户接口)。
[0108] 在实施方案中,用于管理虚拟网关130'及其相关联的镜像网关130的图形用户接 口可以包括用户友好的点击或触摸接口。例如,用户可以经由简单的点击操作或触摸操作 (例如,针对支持触摸功能的用户系统150)来添加、编辑(例如,激活/停用、更改等)和/或删 除镜像物理网关130上的脚本。例如,图形用户接口可以使得用户具有适当的权利,以便容 易从脚本的列表(例如,以类似方式存储在平台110的数据库114中的主脚本库)中选择添加 到与特定虚拟网关130'相关联的相关联镜像网关130的脚本。此外,图形用户接口可以使得 授权用户能够容易从虚拟网关130'中的脚本列表中选择要移除、编辑、验证、激活和/或停 用的脚本。图形用户接口还可以允许使得授权用户能够容易从第一虚拟网关130'中的脚本 列表中选择脚本,并且将该脚本镜像或复制到第二不同的虚拟网关130'。如上文论述,虚拟 网关130'的任何改变都将反映在同步模块118可以与其建立连接210的所有相关联的镜像 网关130中。
[0109] 在实施方案中,图形用户接口使得授权用户能够将存储在源(例如,虚拟网关130 ' 和/或物理网关130)中的脚本和/或装置信息(例如,装置驱动器,和/或针对装置、装置类型 和/或装置组的定义和/或配置)从该源中选择和镜像或复制到一个或多个目标(例如,另一 虚拟网关130'和/或物理网关130)。例如,授权用户可以选择虚拟网关130',并且选择将所 选择的虚拟网关130'镜像或复制到的一个或多个物理网关130。通过类似的方式,授权用户 可以选择装置信息,并且选择将所选择的装置信息镜像或复制到的一个或多个物理网关 130〇
[0110] 应理解,网关网络门户可用于用户经由平台110被授权的所有虚拟和/或物理网 关。网关网络门户可以包括使得授权用户能够同时访问(例如,编辑)多个镜像虚拟和/或物 理网关(例如,用户域内的所有网关和/或网关的子集或分组)的图形用户接口,和/或可以 包括使得用户能够单独访问镜像虚拟和/或物理网关的图形用户接口。
[0111] 1.4.脚本编辑器
[0112] 在实施方案中,平台110的用户接口模块116将图形用户接口(即,脚本编辑器)提 供给用户,以用于创建和编辑存储在脚本库(例如,上述主脚本库和/或网关脚本库)中和/ 或存储在虚拟网关130'和物理网关130上的脚本。如本文中其他地方论述,可以在网关管理 期间的一个或多个点处编辑脚本(例如,由授权用户在这些用户的域内的网关上编辑、在授 权和认证装置上编辑等)。例如,可以从主脚本库中和/或从存储在虚拟网关130'或物理网 关130中的脚本列表中选择用于编辑的脚本。
[0113] 作为一个实例,响应于授权用户从图形用户接口中选择了特定物理网关的标识 符,用户接口模块116可以为用户提供存储在所选择的物理网关上的脚本列表。随后,响应 于用户从脚本列表中选择了特定脚本的标识符,用户接口模块116可以为用户提供用于脚 本编辑器的用户接口。一旦用户在脚本编辑器中表明已完成脚本的编辑(例如,通过操作脚 本编辑器中的"保存"图标或按钮以保存脚本,而无论完成还是未完成、经验证还是未经验 证、活动还是不活动),用户接口模块116可以使用户返回到存储在所选择的物理网关上的 脚本列表。
[0114] 在实施方案中,脚本编辑器使得授权用户能够通过依照语义和句法用图形将各种 脚本部件接合在一起来构建脚本。例如,脚本部件可包括,但不限于,触发器、条件、装置、装 置属性或特性、动作等。脚本编辑器可以包括使得用户能够以逻辑方式依照图形、语义和句 法来放置和连接这些部件的交互式接口。脚本编辑器可以在编辑期间和/或之后检查正确 的语义和句法。如果脚本在语义和/或句法上不正确,那么脚本编辑器可将错误突出显示, 以便用户校正。此外,脚本编辑器可以阻止用户将脚本保存为完成的和/或激活脚本。另外, 脚本编辑器可以将用户构建的部件转换成基础的标准或专用脚本语言(例如,在编辑期间、 在脚本被保存之后、在脚本被激活之后、在脚本已针对正确的语义和句法经过验证之后 等)。作为替代或补充,脚本编辑器可以使得用户能够直接使用基础脚本语言来简单地编写 脚本。在任一情况下,基础脚本语言可以编译成代码(例如,虚拟机代码、字节代码或二进制 代码),以便由脚本引擎134执行。
[0115]脚本编辑器可以使得授权用户能够改变脚本的单独部件,例如,通过改变特定条 件、触发器或装置来实现。脚本编辑器还可以使得用户能够将脚本镜像或复制用作新脚本 的模板或起始点。另外,脚本编辑器可以使得用户能够将脚本重命名、改变脚本的状态(例 如,激活或停用脚本)、手动将虚拟网关130'与相关联的物理网关130同步,和/或在虚拟网 关130'和/或物理网关130之间自动、半自动和/或手动镜像或复制脚本。
[0116]在实施方案中,当用户正在编辑存储在虚拟或物理网关中的特定脚本时,脚本编 辑器可以请求来自网关的装置管理器的动态改变。例如,如果用户正在编辑存储在物理网 关130上的特定脚本,那么针对以通信方式连接到该物理网关的所有装置140、装置类型和/ 或装置组的装置标识符可以被平台110检索(例如,通过查询装置管理器136或者物理网关 130的其他模块)。在适当的情况下,这些装置、装置类型和/或装置组标识符随后可用于脚 本编辑器中,以便用户选择。例如,如果用户添加或者正在编辑脚本中的特定脚本部件并且 该特定脚本部件引用特定装置,那么可以提供包括所有的可用装置、装置类型和/或装置组 标识符或者针对适合于给定脚本部件(例如,适合于条件部件的传感器)的装置、装置类型 和/或装置组的装置标识符的子集的下拉菜单,从而使得用户可以选择脚本部件中要引用 的适当装置、装置类型或装置组标识符。在使用通配符的实施方案中,装置标识符的通配符 版本可以自动或手动可用和/或可选择。例如,网关处可用的具体装置、装置类型和装置组 标识符可以转换成正规表达或以其他方式变得通用,从而它们覆盖一个或多个特定类型的 装置和/或装置的一个或多个组(例如,采用通配符格式,本文中其他地方更详细地描述), 而不是只覆盖以通信方式连接到特定网关的特定物理装置。
[0117] 在实施方案中,脚本编辑器可以包括诊断和/或调试工具。因此,脚本可以在激活 之前自动或手动(例如,由用户)评估和调试(例如,验证)(例如,通过检查脚本在语义和/或 句法上是否正确),或者以便解决激活之后识别的问题。应理解,可在调试之后执行的对脚 本的验证可以对照通配符和/或该脚本中包含的物理装置、物理装置类型和/或物理装置组 来验证脚本的操作,可以验证脚本在其上活动的所有网关上的脚本,并且可以为受影响的 网关的整个组提供组诊断和调试信息。
[0118] 脚本编辑器也可以管理和/或实施脚本的版本控制。例如,对脚本的每个递增更改 可以自动、半自动和/或手动存储为脚本的新版本,并且脚本的每个更老版本可以保留在存 储设备中,以便将来查看、引用、重新运行等。这个版本控制可以针对镜像和复制脚本来执 行。
[0119] 1.5.脚本通配符
[0120] 在实施方案中,一个或多个通配符可以用来在脚本的创建或编辑期间(例如,在上 文论述的脚本编辑器中)抽象地表示装置140、装置类型和/或装置组。通配符使得脚本能够 引用一个或多个类型的装置(例如,恒温器的特定模型)和/或装置的一个或多个组(例如, HVAC系统的部件),而没有束缚于特定装置。通配符可以采用能够提供表示装置的类型和/ 或装置的组的通用装置名称的任何形式(例如,星号、句号等)。
[0121] 通过使用通配符来引用脚本中的装置、装置类型和/或装置组,该脚本可以普遍用 于多个网关。因此,在实施方案中,主脚本库中的一个或多个或者所有脚本都可以包括通配 符,以表示脚本中引用的装置、装置类型和/或装置组。这些通配符可以保留在添加到虚拟 网关130'的脚本中。或者,当添加到虚拟网关130'时,通配符可以解引用。当虚拟网关130' 只与单个物理网关130相关联或者与以通信方式连接到装置140的同名集合的多个物理网 关130相关联时,虚拟网关130'内的这种解引用可以有用。
[0122] 当脚本被本地存储在物理网关130上(例如,经由同步模块118)或被编译(例如,由 脚本管理器132或脚本引擎134编译)时,脚本中的任何通配符可以解引用(即,如果还没有 解引用的话)。换言之,脚本将呈现出对应于通配符所引用的装置、装置类型和/或装置组的 具体装置的特性。例如,每个通配符可以用以通信方式连接到网关130(例如,经由装置管理 器136)并且满足通配符的装置140、装置类型或装置组的具体装置标识符(例如,装置编号 或装置名称)进行替换。
[0123] 作为非限制性实例,主脚本库中的脚本可以引用装置"frontdoorswitch*"。在这 种情况下,通配符是星号。因此,引用"frontdoorswitch*"通常表示装置140内的任何前 门开关。当脚本在物理网关130上实施时,通过用以通信方式可用于网关130并且与通配符 "frontdoorswitch*"相关联的一个或多个特定物理装置140的标志符或其他特性进行自动 替换,这个通配符被解引用(例如,在将执行该通配符的物理网关130处)。每个特定装置140 的属性值随后可以被配置成与针对物理网关130上的脚本执行的通配符定义的属性值一 致。
[0124] 在实施方案中,如果物理网关130可用的装置140、装置类型或装置组的列表中的 装置标识符匹配引用"frontdoorswitch*",那么引用"frontdoorswitch*"在将要在物理网 关130上执行的脚本中被该装置标识符替换。例如,如果装置标识符的列表包括装置标识符 "frontdoorswitchOl",那么这个装置标识符匹配引用"frontdoorswitch*"并且被替换到 脚本中(例如,在将脚本编译成虚拟机代码之前),以便代替引用"frontdoorswitch*"。因 此,解引用的脚本将引用针对特定装置的标识符,而不是由通配符表示的通用装置。
[0125] 1.6.脚本镜像
[0126] 图3示出根据实施方案的平台110的脚本镜像模块119。在此实施方案中,对一个或 多个镜像网关130(例如,130-1、130-2、··· 130-N)具有控制权的授权用户可以经由平台110 的用户接口模块116(例如,使用用户系统150)来访问图形用户接口(例如,网页)。该图形用 户接口可以包括用于选择或以其他方式识别脚本的一个或多个输入,以及用于选择或以其 他方式识别虚拟网关130'或多个虚拟网关130'的组和/或物理网关130和/或多个网关130 的组的一个或多个输入。该图形用户接口还可以包括用于接收来自用户的指示的一个或多 个输入,以便将识别的脚本"镜像"到识别的网关或网关的组。脚本镜像包括将识别的脚本 发送到每个识别的虚拟和/或物理网关。在识别出一个或多个物理网关的情况下,脚本通过 连接210 (例如,210-1、210-2、…210-N)传输到物理网关。例如,脚本镜像模块119可以请求 每个识别的网关130的脚本管理器132,以便存储将由网关的各自脚本引擎134执行的脚本 的本地镜像(例如,复本)。
[0127] 此外,脚本镜像模块119可以将识别的脚本添加到与每个识别的物理网关130相关 联的虚拟网关130'。换目之,与物理网关130相关联的所有虚拟网关130'都被更新,以便考 虑镜像到物理网关130的新脚本。如上文所述,可能存在与每个物理网关130相关联的离散 虚拟网关130',或者可能存在与多个镜像(例如,相同配置的)物理网关130相关联的单个虚 拟网关130'。
[0128] 作为实例,授权用户可以从上文论述的主脚本库中或者从用户创建的脚本的集合 中选择脚本的标识符。用户随后可以选择虚拟或物理网关的标识符、多个虚拟或物理网关 的标识符和/或包括多个虚拟或物理网关的一组的标识符。在所述实例中,多个物理网关的 组包括网关130-1到130-N。当用户执行(例如,选择图标或按钮)表明识别的脚本应被"镜 像"到识别的物理网关130-1到130-N的操作时,脚本镜像模块119通过各自的连接210-1到 210-N将识别的脚本的镜像传输到网关130-1到130-N中的每个。换言之,识别的脚本本地存 储在物理网关130-1到130-N中的每个处。如果识别的脚本的当前版本的镜像已经存储在识 别的网关中的一个处,那么可以选择性地跳过镜像的传输,或者可以覆盖存储的镜像。此 外,在利用上述虚拟网关130'的实施方案中,可以将识别的脚本添加到与物理网关130-1到 130-N相关联的虚拟网关130。
[0129] 当包括通配符的脚本被镜像到一个或多个物理网关130时,脚本中的每个通配符 都在每个网关130处解引用,以便被特定装置140自动替换,如本文中其他地方论述。因此, 带有通用装置、装置类型和/或装置组引用的脚本可以被镜像到多个网关130,并且镜像脚 本中的通用装置识别符被针对连接到每个各自物理网关130的具体装置、装置类型和/或装 置组的具体标识符自动替换。
[0130] 2.过程概述
[0131] 现在将详细描述用于针对物理网关来管理控制脚本的过程的实施方案。应理解, 所述过程可以体现在由一个或多个硬件处理器执行的一个或多个软件模块中,它可以完全 由平台110的处理器执行、完全由网关130和/或用户系统150的处理器执行,或者可以分布 在平台110和网关130和/或用户系统150上,从而使得应用的一些部分或模块由平台110执 行,并且应用的其他部分或模块由网关130和/或用户系统150执行。所述过程可以实施为用 源代码、目标代码和/或机器代码表示的指令。这些指令可以直接由硬件处理器执行,或者, 可以由在目标代码与硬件处理器之间操作的虚拟机执行。此外,所公开的应用可以建立在 一个或多个现有系统之上或者与所述现有系统对接。
[0132] 2.1.网关编辑
[0133] 图4示出根据实施方案的用于编辑网关130的过程400。在步骤410,向用户提供用 户接口,以便用于添加、更改(例如,改变脚本的部件或其他部件、改变脚本或其他部件的状 态,诸如,激活或停用脚本)和/或删除一个或多个脚本、装置信息(例如,装置驱动器和/或 针对装置、装置类型和/或装置组的定义和/或配置)和/或网关的其他可改变部件。例如,该 用户接口可以由平台110的用户接口模块116提供。该用户接口可以提供用于编辑特定虚拟 网关(例如,虚拟网关130')、特定物理网关(例如,网关130)上和/或针对整个平台(例如,针 对由平台110管理的每个虚拟网关130'和/或物理网关130)或者平台的子集(例如,只针对 由平台110管理的虚拟网关130'和/或物理网关130的一部分)上的可改变部件(例如,脚本、 装置信息等)。在实施方案中,需要注意的脚本和/或驱动器(例如,不完整脚本、未经验证的 脚本或者在物理网关上或作为虚拟网关编译或执行期间已产生错误的脚本)可以使用突出 显示(例如,粗体)、颜色(例如,红色)、符号(例如,"!")等等便于用户区分。
[0134] 在实施方案中,用户接口使得授权用户能够选择特定的虚拟和/或物理网关、提供 该网关上的部件列表以及使得用户能够编辑每个部件以仅用于该网关。在用户选择了与多 个物理网关形成镜像的虚拟网关的情况下,应理解,在虚拟网关上编辑部件可以影响相关 联的镜像物理网关中的每个,如本文中其他地方论述。换言之,选择了具体的虚拟或物理网 关,并且编辑该具体网关上的部件中的一个或多个。
[0135] 在替代或额外的实施方案中,用户接口为用户提供用于识别一个或多个部件、识 别该部件将被镜像或复制到的一个或多个虚拟和/或物理网关以及开始将部件镜像或复制 到识别的网关的一个或多个输入。此外,用户接口可以为用户提供用于识别存储在一个或 多个虚拟和/或物理网关上的脚本以及开始从网关中删除脚本的一个或多个输入。另外,用 户接口可以为正在更改部件的用户提供用于识别应该应用更改的一个或多个虚拟和/或物 理网关的一个或多个输入。换言之,编辑具体部件、选择或以其他方式识别具体的虚拟和/ 或物理网关,以及对选择的虚拟和/或物理网关(例如,可以包括由平台110控制的所有网关 或网关的任何子集)实施编辑。
[0136] 在步骤420中,确定用户是否已完成部件(例如,脚本、装置信息等)的添加、更改或 删除。这个确定可以采用接收到具体用户操作(例如,在用户接口的输入上)或者完成更改 或应添加或删除识别的部件的其他指示的形式。换言之,该过程可以假设部件的编辑未完 成直至接收到具体用户操作为止,而不是阻止或轮询。
[0137] 一旦完成部件的编辑,在步骤430中,更新适用的虚拟网关,以反映编辑。如果编辑 只影响单个虚拟网关,那么只更新该虚拟网关。然而,如果编辑影响多个虚拟网关,那么更 新多个虚拟网关中的每个。在任一种情况下,无论编辑的部件的状态如何(例如,不论诸如 脚本等部件是否被停用或未经验证),都可以应用编辑。
[0138] 在步骤440中,确定编辑中的任一个是否涉及经验证和/或活动部件或者涉及从物 理网关中删除部件。如果是的话,则在步骤450中执行与适用的镜像物理网关的同步(例如, 通过同步模块118)。否则,不需要同步,因为编辑只影响不完整、未经验证或不活动的部件。 如本文中其他地方论述,在实施方案中,不完整、未经验证和/或不活动的部件可以保存在 虚拟网关中,而不是同步到镜像或选择的物理网关。在替代实施方案中,不完整、未经验证、 不活动和/或被删除的部件可以被镜像到和/或保留在物理网关处,但它们的状态可以设置 成不活动,以反映出它们是不完整、未经验证、不活动或被删除的,从而物理网关可以适当 处理它们(例如,不编译、执行或以其他方式处理它们)。
[0139] 应理解,相同的过程400可以应用于对虚拟和物理网关作出的其他改变。也就是 说,过程400可以类似地应用于部件的用户编辑,而不是网关的脚本和驱动器(例如,诸如网 关的脚本引擎134)。
[0140] 2.2.同步
[0141]图5示出根据实施方案的同步过程500。在实施方案中,过程500可以是或被包括在 过程400的步骤450中,并且可以实施为同步模块118或作为其一部分。过程500可以针对需 要同步的每个虚拟和/或物理网关(例如,每个选择或镜像的虚拟网关130'和/或每个选择 或镜像的物理网关130)来执行。至于自动同步,可以针对需要同步的每个网关来迭代或并 行执行过程500。
[0142] 在步骤510中,识别要同步的网关,并且接收同步数据。同步数据可以包括将识别 的网关同步所需的任何数据,并且可以采用任何多种形式或配置,取决于特定的实施。例 如,在脚本必须添加到网关的情况下,同步数据可以包括脚本。在装置信息(例如,装置驱动 器和/或针对装置、装置类型和/或装置组的定义和/或配置)必须添加到网关的情况下,同 步数据可以包括装置信息。在可以对网关作出递增改变的实施方案中,同步数据可以包括 应该应用到存储在网关处的数据以便进行同步的delta的表示。
[0143] 在步骤520中,确定是否可以建立或建立了与识别的网关的连接(例如,连接210)。 如果否,则过程500可以阻断,直到与识别的网关可以建立连接为止。在实施方案中,过程 500可以在重新尝试连接之前等待预定的时间。此外,当连接失败、失败了预定的次数或者 在预定的时间段之后没有建立起来时,过程500可以生成警报(例如,用户接口消息、电子邮 件消息、文本消息等),以通知一个或多个接收者该故障。
[0144] 另一方面,当在步骤520中建立了连接时,识别的网关在步骤530中同步。具体而 言,将同步数据传输或以其他方式应用到网关(例如,通过网络120)。
[0145] 2.3.同步
[0146] 图6示出根据实施方案的用于对脚本中的通配符解引用的过程640。如上文论述, 与多个物理网关相关联的虚拟网关的脚本可以包括通配符(所述通配符在物理网关处解引 用),而只与单个物理网关相关联的虚拟网关的脚本可以在虚拟网关中以及在物理网关处 解引用。过程640可以实施为一个或多个网关130和/或平台110处的模块。
[0147] 在步骤650中,接收脚本。如本文中其他地方论述,脚本可以包含通配符,所述通配 符引用针对装置、装置类型和/或装置组的通用标识符。例如,通配符可以是添加到装置、装 置类型或装置组标识符的一个或多个部件(例如,添加到针对装置、装置类型或装置组标识 符的公共前缀的最后、添加到针对装置、装置类型或装置组标识符的公共后缀的开头)的星 号或其他符号。在"frontdoorswitch*"的实例中,通配符是添加到前缀"frontdoordevice" 的星号,表明通配符表示以前缀"frontdoor swi tch"开始的任何装置标识符,而无论装置标 识符中的该前缀之后的内容如何。
[0148] 在步骤660中,确定任何通配符是否保留在正处理的脚本中。如果脚本从不包含通 配符或不再包含任何通配符,则过程640结束。否则,在步骤670中处理脚本中的下一通配 符。
[0149] 在步骤670中,使用通配符来搜索包括特定网关处的装置、装置类型或装置组标识 符的数据结构,以识别匹配的装置、装置类型或装置组标识符。数据结构可以包括数据库、 表格、列表、对象、blob等。在实施方案中,通配符表示正规表达式,并且如果通配符满足该 正规表达式,则装置、装置类型或装置组标识符匹配该通配符。
[0150] 如果通配符不匹配任何装置、装置类型或装置组标识符,那么可以在步骤680中执 行错误处理。错误处理可以包括生成警报(例如,用户接口消息、电子邮件消息、文本消息 等)以通知一个或多个接收者该故障、记录错误等等。或者,替代于在步骤680中执行错误处 理,过程640可以跳过不匹配的通配符、结束和/或执行其他处理。
[0151] 如果通配符确实匹配装置、装置类型或装置组标识符,那么在步骤690中,用匹配 的装置、装置类型或装置组标识符替换脚本中的通配符,并且如果有的话,在步骤660中识 别下一个剩余的通配符。如果存在多个匹配的装置、装置类型或装置组标识符,那么可以用 每个匹配的装置、装置类型或装置组标识符或者只用单个匹配的装置、装置类型或装置组 标识符(例如,第一匹配的装置、装置类型或装置组标识符)来替换所述通配符,具体取决于 过程640的特定实施。
[0152] 3.示例处理装置
[0153] 图7是示出可以结合本文所述的各个实施方案使用的示例有线或无线系统550的 框图。例如,系统550可以用作上述机构、过程、方法或功能中的一个或多个或者与其结合使 用(例如,以便存储和/或执行一个或多个软件模块),并且可以表示平台110、服务器112、网 关130、装置140、用户系统150和/或本文所述的其他装置的部件。系统550可以是服务器或 任何常规的个人计算机,或者能够进行有线或无线数据通信的任何其他支持处理器功能的 装置。如所属领域的技术人员将明白,也可以使用其他计算机系统和/或架构。此外,应理 解,尽管所示系统550带有某些元件,但它可以包括比所示这些更少或更多的元件,取决于 它表示的特定部件。例如,不具有无线通信能力的系统550可以不包括基带620、无线电615 和天线610。
[0154] 系统550优选包括一个或多个处理器,诸如,处理器560。可以提供额外的处理器, 诸如,用以管理输入/输出的辅助处理器、用以执行浮点数学运算的辅助处理器、具有适合 于信号处理算法的快速执行的架构的专用微处理器(例如,数字信号处理器)、从属于主处 理系统的从属处理器(例如,后端处理器)、用于双处理器系统或多个处理器系统的额外微 处理器或控制器、或者协处理器。此类辅助处理器可以是离散处理器,或者可以与处理器 560集成。可以与系统550-起使用的处理器的实例包括,但不限于,Pentium?处理器、 Corei7?处理器、Xe〇n?处理器以及可从加利福尼亚州圣克拉拉的英特尔公司(Intel Corporation of Santa Clara,California)得到的其他型号,以及来自其他制造商的硬件 处理器,诸如,来自加利福尼亚州森尼维尔市的超微设备公司(Advanced Micro Devices of Sunnyvale,California)〇
[0155] 处理器560优选连接到通信总线555。通信总线555可以包括用于促进系统550的存 储设备与其他外围部件之间的信息传输的数据通道。此外,通信总线555可以提供用于与处 理器560通信的信号的集合,包括数据总线、地址总线和控制总线(未示出)。通信总线555可 以包括任何标准或非标准总线架构,例如,诸如符合下列标准的总线架构:工业标准架构 (ISA)、扩展工业标准架构(EISA)、微通道架构(MCA)、外围部件互连(PCI)局部总线或者由 电气和电子工程师协会(IEEE)颁布的标准,包括IEEE 488通用接口总线(GPIB)、IEEE 696/ S-100等等。
[0156] 系统550优选包括主存储器565,并且也可以包括辅助存储器570。主存储器565为 在处理器560上执行的程序提供指令和数据的存储,诸如,上文论述的功能和/或模块中的 一个或多个。应理解,存储在存储器中并且由处理器560执行的程序可以根据任何合适的语 言进行编写和/或编译,包括但不限于:C/C++、Java、JavaScript、Perl、Visual Basic、 .NET、专用视觉脚本语言、专用脚本语言等等。主存储器565通常是基于半导体的存储器,诸 如,动态随机存取存储器(DRAM)和/或静态随机存取存储器(SRAM)。例如,其他基于半导体 的存储器类型包括同步动态随机存取存储器(SDRAM)、Rambus动态随机存取存储器 (RDRAM)、铁电随机存取存储器(FRAM)等等,包括只读存储器(ROM)。
[0157] 辅助存储器570可任选地包括内部存储器575和/或可移动介质580,例如,软盘驱 动器、磁盘驱动器、光盘(⑶)驱动器、数字多功能盘(DVD)驱动器、其他光驱、闪存驱动器、微 型SD等。可移动介质580采用已知的方式读取和/或写入。例如,可移动存储介质580可以是 软盘、磁带、⑶、DVD、SD卡、拇指驱动器等。
[0158] 可移动存储介质580是存储有计算机可执行代码(即,软件)和/或数据的非暂时计 算机可读介质。存储在可移动存储介质580上的计算机软件或数据被读取到系统550中,以 便由处理器560执行。
[0159] 在替代实施方案中,辅助存储器570可以包括用于使得计算机程序或者其他数据 或指令能够加载到系统550中的其他类似构件。例如,此类构件可以包括外部存储介质595 和接口 590。外部存储介质595的实例可以包括外部硬盘驱动器或外部光驱,或和外部磁光 驱。
[0160] 辅助存储器570的其他实例可以包括基于半导体的存储器,诸如,可编程只读存储 器(PR0M)、可擦除可编程只读存储器(EPROM)、电可擦除只读存储器(EEPR0M)或者闪存(类 似于EEPR0M的面向块的存储器)。还包括任何其他可移动存储介质580和通信接口 590,从而 允许软件和数据从外部介质595传输到系统550。
[0161] 系统550可以包括通信接口 590。通信接口 590允许软件和数据在系统550与外部装 置(例如,打印机)、网络或信息源之间传输。例如,计算机软件或可执行代码可以经由通信 接口 590从网络或云服务器传输到系统550。通信接口 590的实例包括内置式网络适配器、网 络接口卡(NIC)、个人计算机存储卡国际协会(PCMCIA)网卡、插件总线网络适配器、无线网 络适配器、通用串行总线(USB)网络适配器、调制解调器、网络接口卡(NIC)、无线数据卡、通 信端口、红外接口、IEEE 1394火线,或者能够将系统550与网络或另一计算装置对接的任何 其他装置。
[0162] 通信接口 590优选实施工业颁布的协议标准,诸如,以太网IEEE802标准、光纤通 道、数字用户线(DSL)、异步数字用户线(ADSL)、帧中继、异步传输模式、综合数字服务网 (ISDN)、个人通信服务(PCS)、传输控制协议/互联网协议(TCP/IP)、串行线路互联网协议/ 点对点协议(SLIP/PPP)等等,但也可以实施自定义或非标准接口协议。
[0163] 经由通信接口 590传输的软件和数据一般采用电通信信号605的形式。这些信号 605优选经由通信通道600提供到通信接口 590。在一个实施方案中,通信通道600可以是有 线或无线网络,或者任何多种其他通信链路。通信通道600携载信号605,并且可以使用多种 有线或无线通信构件进行实施,包括导线或线缆、光纤、常规电话线、蜂窝电话链路、无线数 据通信链路、射频("RF 1')链路或者红外链路,这里仅举一些。
[0164] 计算机可执行代码(即,计算机程序或软件,诸如,所公开的应用)存储在主存储器 565和/或辅助存储器570中。计算机程序也可以经由通信接口590接收并且存储在主存储器 565和/或辅助存储器570中。此类计算机程序在执行时使得系统550能够执行如先前所述的 本发明的各种功能。
[0165] 在本说明中,术语"计算机可读介质"、"存储介质"和"介质"用来指代用于将计算 机可执行代码(例如,软件和计算机程序)提供到系统550的任何非暂时计算机可读存储介 质。这些介质的实例包括主存储器565、辅助存储器570(包括内部存储器575、可移动介质 580和外部存储介质595)以及以通信方式与通信接口 590耦接的任何外围装置(包括网络信 息服务器或其他网络装置)。这些非暂时计算机可读介质是用于将可执行代码、编程指令和 软件提供到系统550的构件。
[0166] 在使用软件实施的实施方案中,通过可移动介质580、I/O接口 585或通信接口 590, 软件可以存储在计算机可读介质上并且加载到系统550中。在此类实施方案中,软件采用电 通信信号605的形式加载到系统550中。软件在由处理器560执行时优选导致处理器560执行 本文中先前描述的本发明特征和功能。
[0167] 在实施方案中,I/O接口 585在系统550的一个或多个部件与一个或多个输入和/或 输出装置之间提供接口。示例输出装置包括,但不限于,键盘、触摸屏或其他触敏装置、生物 传感装置、计算机鼠标、跟踪球、基于笔的指向装置等等。输出装置的实例包括,但不限于, 阴极射线管(CRT)、等离子显示器、发光二极管(LED)显示器、液晶显示器(IXD)、打印机、真 空荧光显示器(VFD)、表面传导电子发射显示器(SED)、场发射显示器(FED)等等。
[0168] 系统550还包括促进通过语音和通过数据网络的无线通信的任选无线通信部件。 无线通信部件包括天线系统610、无线电系统615以及基带系统620。在系统550中,射频(RF) 信号在无线电系统615的管理下由天线系统610在空中传输和接收。
[0169] 在一个实施方案中,天线系统610可以包括一个或多个天线以及一个或多个多路 复用器(未示出),所述多路复用器执行切换功能以便为天线系统610提供传输和接收信号 路径。在接收路径中,接收到的RF信号可以从多路复用器耦接到低噪声放大器(未示出),所 述低噪声放大器对接收到的RF信号进行放大并且将放大的信号发送到无线电系统615。
[0170] 在替代实施方案中,无线电系统615可以包括被配置成通过各种频率和协议通信 的一个或多个无线电。在一个实施方案中,无线电系统615可以将解调器(未示出)和调制器 (未示出)组合在一个集成电路(1C)中。解调器和调制器也可以是单独的部件。在进入路径 中,解调器除去RF载波信号而留下基带接收音频信号,所述基带接收音频信号从无线电系 统615发送到基带系统620。
[0171]如果接收到的信号包含音频信息,那么基带系统620对信号进行解码,并且将它转 换成模拟信号。随后,对信号进行放大并且发送到扬声器。基带系统620也接收来自麦克风 的模拟音频信号。这些模拟音频信号被转换成数字信号并且被基带系统620编码。基带系统 620也对用于传输的数字信号进行编码,并且生成基带传输音频信号,该信号被路由到无线 电系统615的调制器部分。调制器将基带传输音频信号与RF载波信号进行混合,从而生成RF 传输信号,该信号被路由到天线系统并且可以穿过功率放大器(未示出)。功率放大器对RF 传输信号进行放大,并且将其路由到天线系统610,其中将信号切换到天线端口,以用于传 输。
[0172] 基带系统620也以通信方式与处理器560耦接。中央处理单元560可以访问数据存 储区565和570。中央处理单元560优选被配置成执行可存储在存储器565或辅助存储器570 中的指令(即,计算机程序或软件)。计算机程序也可以从基带处理器610接收并且存储在数 据存储区565或辅助存储器570中,或者在接收之后就执行。此类计算机程序在执行时使得 系统550能够执行如先前所述的本发明的各种功能。例如,数据存储区565可以包括各种软 件模块(未示出)。
[0173] 例如,也可以使用诸如专用集成电路(ASIC)或现场可编程门阵列(FPGA)的部件主 要在硬件中实施各个实施方案。相关领域的技术人员也将明白能够执行本文所述的功能的 硬件状态机的实施。各个实施方案也可以使用硬件和软件的组合来实施。
[0174] 此外,所属领域的技术人员将了解,结合上述附图和本文中公开的实施方案描述 的各种说明性逻辑块、模块、电路和方法步骤通常可以实施为电子硬件、计算机软件或者这 两个的组合。为了清楚地说明硬件和软件的这种互换性,上文大体就其功能描述了各种说 明性部件、块、模块、电路和步骤。此类功能是实施为硬件还是软件,取决于整个系统上实施 的特定应用和设计限制。针对每个特定的应用,技术人员可以用不同的方式实施所述功能, 但此类实施决策不应被解释为导致脱离本发明的范围。此外,模块、块、电路或步骤内的功 能分组是为了便于描述。在不脱离本发明的情况下,具体功能或步骤可以从一个模块、块或 电路移动到另一个。
[0175] 此外,通过被设计用于执行本文所述功能的通用处理器、数字信号处理器(DSP)、 ASIC、FPGA或其他可编程逻辑装置、离散门或晶体管逻辑、离散硬件部件或者它们的任意组 合,可以实施或执行结合本文中公开的实施方案描述的各种说明性逻辑块、模块、功能和方 法。通用处理器可以是微处理器,但在替代方案中,所述处理器可以是任何处理器、控制器、 微控制器或者状态机。处理器还可以实现为计算装置的组合,例如,DSP和微处理器的组合、 多个微处理器、一个或多个微处理器与DSP内核的结合,或者任何其他此类配置。
[0176] 此外,结合本文中公开的实施方案描述的方法或算法的步骤可以直接体现在硬 件、由处理器执行的软件模块或者这两个的组合中。软件模块可以位于RAM存储器、闪存、 ROM存储器、EPROM存储器、EEPR0M存储器、寄存器、硬盘、可移动磁盘、CD-ROM或者包括网络 存储介质的任何其他形式的存储介质中。示例性存储介质可以耦接到处理器,从而使得处 理器可以从存储介质中读取信息并将信息写入该存储介质。在替代方案中,存储介质可以 与处理器成为整体。处理器和存储介质也可以存在于ASIC中。
[0177] 本文所述的软件部件中的任一个可以采用多种形式。例如,部件可以是独立的软 件包,或者它可以是并入为较大软件产品中的"工具"的软件包。它可以从网络,例如,网站 下载作为独立的产品或插件包,以用于安装在现有的软件应用中。它也可以用作客户端-月艮 务器软件应用、支持网络功能的软件应用和/或移动应用。
[0178] 提供了所公开的实施方案的上述描述,以使得所属领域的任何技术人员能够实现 或使用本发明。对于所属领域的技术人员而言,这些实施方案的各种更改将是明显的,并且 在不脱离本发明的精神或范围的情况下,本文中描述的一般原理可以应用于其他实施方 案。因此,应理解,本文中呈现的描述和附图表示本发明当前优选的实施方案,并且因此表 示本发明广泛预期的主题。应进一步理解,本发明的范围完全涵盖所属领域的技术人员可 以明白的其他实施方案,并且本发明的范围相应地不受到限制。
【主权项】
1. 一种系统,其包括: 至少一个硬件处理器;以及 一个或多个模块,所述一个或多个模块在被所述至少一个硬件处理器执行时, 生成虚拟网关,所述虚拟网关包括存储在至少一个远程物理网关上的一个或多个活动 脚本中的每个的表示; 提供至少一个用户接口,以用于编辑所述虚拟网关中表示的所述一个或多个活动脚本 中的每个;以及 通过至少一个网络来自动维持所述虚拟网关中表示的所述一个或多个活动脚本与存 储在所述至少一个远程物理网关上的所述一个或多个活动脚本之间的同步。2. 根据权利要求1所述的系统,其中所述虚拟网关进一步包括存储在所述至少一个远 程物理网关上的一个或多个活动驱动器中的每个的表示,并且其中所述一个或多个模块进 一步: 提供至少一个用户接口,以用于编辑所述虚拟网关中表示的所述一个或多个活动驱动 器中的每个;以及 通过所述至少一个网络来自动维持所述虚拟网关中表示的所述一个或多个活动驱动 器与存储在所述至少一个远程物理网关上的所述一个或多个活动驱动器之间的同步。3. 根据权利要求1所述的系统,其中所述一个或多个模块进一步: 检测所述至少一个远程物理网关的状态的改变;以及, 响应于所述至少一个远程物理网关的状态的所述改变,在本地执行所述虚拟网关中表 示的所述一个或多个活动脚本。4. 根据权利要求3所述的系统,其中状态的所述改变是所述至少一个远程物理网关的 故障。5. 根据权利要求1所述的系统,其中所述至少一个远程物理网关包括与所述虚拟网关 相关联的多个远程物理网关,并且其中所述一个或多个模块进一步通过所述至少一个网络 来自动维持所述虚拟网关中表示的所述一个或多个活动脚本与存储在所述多个远程物理 网关中的每个上的所述一个或多个活动脚本之间的同步。6. 根据权利要求1所述的系统,其中所述虚拟网关进一步包括没有与存储在所述至少 一个远程物理网关上的任何脚本同步的一个或多个不活动脚本中的每个的表示。7. 根据权利要求1所述的系统,其中所述至少一个远程物理网关以通信方式与一个或 多个装置连接,并且其中存储在所述至少一个远程物理网关上并且表示在所述虚拟网关中 的所述一个或多个活动脚本被配置成监测或控制所述一个或多个装置。8. 根据权利要求7所述的系统,其中存储在所述至少一个远程物理网关上并且表示在 所述虚拟网关中的所述一个或多个活动脚本中的至少一个包括一个或多个通配符,并且其 中所述一个或多个通配符中的每个引用用于所述一个或多个装置中的至少一个的通用标 识符。9. 根据权利要求8所述的系统,其进一步包括所述至少一个远程网关,其中所述至少一 个远程网关包括至少一个模块,所述至少一个模块被配置成通过针对所述至少一个活动脚 本中的所述一个或多个通配符中的每个进行下列操作来对所述至少一个活动脚本解引用: 识别具有匹配所述通配符的装置标识符的所述一个或多个装置中的至少一个;以及 用识别的至少一个装置的所述装置标识符来替换所述通配符。10. 根据权利要求7所述的系统,其进一步包括所述至少一个远程物理网关,其中所述 至少一个远程物理网关包括: 编译器,所述编译器被配置成将所述一个或多个活动脚本编译成一个或多个虚拟机代 码;以及 虚拟机,所述虚拟机被配置成执行所述一个或多个虚拟机代码。11. 一种用于管理网关的方法,所述方法包括使用至少一个硬件处理器以便: 生成虚拟网关,所述虚拟网关包括存储在至少一个远程物理网关上的一个或多个活动 脚本中的每个的表示; 提供至少一个用户接口,以用于编辑所述虚拟网关中表示的所述一个或多个活动脚本 中的每个;以及 通过至少一个网络来自动维持所述虚拟网关中表示的所述一个或多个活动脚本与存 储在所述至少一个远程物理网关上的所述一个或多个活动脚本之间的同步。12. 根据权利要求11所述的方法,其中所述虚拟网关进一步包括存储在所述至少一个 远程物理网关上的一个或多个活动驱动器中的每个的表示,并且其中所述方法进一步包括 使用所述至少一个硬件处理器以便: 提供至少一个用户接口,以用于编辑所述虚拟网关中表示的所述一个或多个活动驱动 器中的每个;以及 通过所述至少一个网络来自动维持所述虚拟网关中表示的所述一个或多个活动驱动 器与存储在所述至少一个远程物理网关上的所述一个或多个活动驱动器之间的同步。13. 根据权利要求11所述的方法,其进一步包括使用所述至少一个硬件处理器以便: 检测所述至少一个远程物理网关的状态的改变;以及, 响应于所述至少一个远程物理网关的状态的所述改变,在本地执行所述虚拟网关中表 示的所述一个或多个活动脚本。14. 根据权利要求13所述的方法,其中状态的所述改变是所述至少一个远程物理网关 的故障。15. 根据权利要求11所述的方法,其中所述至少一个远程物理网关包括与所述虚拟网 关相关联的多个远程物理网关,并且其中所述方法包括使用所述至少一个硬件处理器以便 通过所述至少一个网络来自动维持所述虚拟网关中表示的所述一个或多个活动脚本与存 储在所述多个远程物理网关中的每个上的所述一个或多个活动脚本之间的同步。16. 根据权利要求11所述的方法,其中所述虚拟网关进一步包括没有与存储在所述至 少一个远程物理网关上的任何脚本同步的一个或多个不活动脚本中的每个的表示。17. 根据权利要求11所述的方法,其中所述至少一个远程物理网关以通信方式与一个 或多个装置连接,并且其中存储在所述至少一个远程物理网关上并且表示在所述虚拟网关 中的所述一个或多个活动脚本被配置成监测或控制所述一个或多个装置。18. 根据权利要求17所述的方法,其中存储在所述至少一个远程物理网关上并且表示 在所述虚拟网关中的所述一个或多个活动脚本中的至少一个包括一个或多个通配符,并且 其中所述一个或多个通配符中的每个引用用于所述一个或多个装置中的至少一个的通用 标识符。19. 一种存储有指令的非暂时计算机可读介质,其中所述指令在被处理器执行时导致 所述处理器: 生成虚拟网关,所述虚拟网关包括存储在至少一个远程物理网关上的一个或多个活动 脚本中的每个的表示; 提供至少一个用户接口,以用于编辑所述虚拟网关中表示的所述一个或多个活动脚本 中的每个;以及 通过至少一个网络来自动维持所述虚拟网关中表示的所述一个或多个活动脚本与存 储在所述至少一个远程物理网关上的所述一个或多个活动脚本之间的同步。20. 根据权利要求19所述的非暂时计算机可读介质,其中所述至少一个远程物理网关 以通信方式与一个或多个装置连接,并且其中存储在所述至少一个远程物理网关上并且表 示在所述虚拟网关中的所述一个或多个活动脚本被配置成监测或控制所述一个或多个装 置,其中存储在所述至少一个远程物理网关上并且表示在所述虚拟网关中的所述一个或多 个活动脚本中的至少一个包括一个或多个通配符,并且其中所述一个或多个通配符中的每 个引用用于所述一个或多个装置中的至少一个的通用标识符。
【文档编号】H04L12/24GK106031092SQ201580008489
【公开日】2016年10月12日
【申请日】2015年3月12日
【发明人】小拉沃恩·弗格森·瓦茨, J·洛克, A·维塞, R·惠灵顿-欧古瑞
【申请人】希斯泰克公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1