CN107003836B - 用于所连接的消费者设备的灵活设备模板 - Google Patents
用于所连接的消费者设备的灵活设备模板 Download PDFInfo
- Publication number
- CN107003836B CN107003836B CN201580056786.1A CN201580056786A CN107003836B CN 107003836 B CN107003836 B CN 107003836B CN 201580056786 A CN201580056786 A CN 201580056786A CN 107003836 B CN107003836 B CN 107003836B
- Authority
- CN
- China
- Prior art keywords
- physical
- virtual
- templates
- template
- virtual device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer And Data Communications (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
一种执行注册服务的处理设备,其接收标识第一设备、第二设备以及在所述第一设备上运行的应用的信息。所述处理设备确定由所述应用和所述第二设备两者支持的注册技术,并且将指示所述注册技术的消息发送给所述第一设备或所述第二设备中的至少一个,其中,所述应用用于执行与所述第一注册技术关联的操作,以将所述第二设备绑定到所述用户账户。
Description
背景技术
很多现代电器、消费者设备以及其它设备包括被配置为执行一个或多个专用功能的嵌入式***。然而,这些设备的多数嵌入式***不包括联网能力、基于角色的访问控制能力、远程接口能力、远程控制能力或相关能力。将这样的功能设计到嵌入式***中、设计用于访问这些功能的应用编程接口(API)、设计能够经由这种添加的功能与嵌入式***进行通信并且对其进行控制的web服务以及设计用于利用这种功能的应用可能会消耗设备制造商的大量资源。
此外,大多数消费者设备遵循这样的生命周期:定义消费者设备的功能,开发消费者设备,制造消费者设备,最终销售消费者设备并将其部署到消费者位置。这种消费者设备的行为通常被硬编码到消费者设备中。因此,消费者设备的功能和行为在它们已经被部署到消费者位置之后不能被修改。此外,用于传统消费者设备的产品开发的时间框架可能非常长(例如,在一些情况下,以6个月到一年的量级)。
附图说明
现将参考示出本申请的示例性实施方式的附图,并且其中:
图1是描述包括远程可访问设备以及用于远程可访问设备的虚拟设备的示例网络架构的框图;
图2A是根据本发明一个实施方式的模板管理器的框图;
图2B是根据本发明一个实施方式的虚拟设备管理器的框图;
图3A是描述虚拟设备与附加设备之间的交互的框图;
图3B是描述虚拟设备与附加设备之间的交互的附加框图;
图4A是用于使用虚拟设备控制物理设备的方法的一个实施方式的流程图;
图4B是用于基于改变与物理设备关联的一个或多个模板而改变所述物理设备的性质和/或功能的方法的一个实施方式的流程图;
图5是用于使用虚拟设备控制物理设备的方法的另一实施方式的流程图;以及
图6示出计算设备的一个实施方式的框图。
具体实施方式
实施方式针对一种具有提供对能够用于促进、补充并且修改物理设备的功能的虚拟设备进行灵活生成和修改的敏捷模板化框架的联网设备平台(又称为物联网(IoT)云平台或简称IoT平台)。所连接的设备具有能够由用户控制的很多性质或属性以及用于监控和数据收集目的的很多性质或属性。设备的性质或属性的集合基于设备的类型、模型和其运行的固件而变化。这些性质/属性构成依赖于硬件和固件的设备的物理模型。此外,设备具有独立于硬件或固件考虑的OEM能够定义的各种行为特性。这些特性的一些示例是当特定设备事件发生时要发送的警示、可以访问设备的角色以及要用于将设备注册到用户账户的方法。这些行为可以由云服务器控制,并且能够在设备的生命周期期间的任何时候变化。
一些实施方式解决在设备已经被部署在现场中之后当设备的物理属性或行为属性改变时出现的问题。通过采用能够基于改变要求将模板分配给设备的灵活模板化框架,实施方式使得对变化的部署是无缝的。模板化框架使用一个或多个设备模板来定义并且生成虚拟设备。每个模板是捕获设备的物理属性或行为属性的设备的模型(或设备的部件、特征或特征集合)。虚拟设备可以继承用于生成虚拟设备的模板中的每一个的设备属性。这些设备属性可以包括被硬编码和/或制造到与虚拟设备关联的物理设备中的物理设备属性的超集。
在任何时间,与物理设备关联的模板中的一个或多个可以改变。此外,新设备模板可以与物理设备关联,或现有设备模板可以与设备解除关联。在关联的设备模板的这种改变之后,可以针对物理设备创建新虚拟设备。新的虚拟设备然后可以提供用于物理设备的添加的功能、属性、行为等。
敏捷模板化框架使得物理设备的功能、属性和/或行为随着时间而改变。这些改变甚至可以产生于已经部署到消费者位置的物理设备。在很多情况下,可以基于更新在服务器(例如基于云的服务器)中所执行的商业逻辑而实现改变,而不写入用于在物理设备上执行或用于在服务器上执行的新的软件代码。这缩短并且简化了产品开发周期,并且使得附加工具(例如不同版本的物理设备之间的A-B测试)成为可能,其中,每个版本可以具有相同的硬件和相同的软件,但具有不同的虚拟设备和在远程服务器上执行的商业逻辑。此外,模板可以用于基于修改和/或复用先前针对其它设备创建的设备模板而快速地并且容易地定义新产品的功能。这样能够进一步简化产品设计并且缩短产品开发周期。
在一个实施方式中,虚拟设备管理器确定与物理设备关联的一个或多个设备模板。设备模板中的每一个可以定义设备属性(例如逻辑属性、物理属性、通知规则、商业逻辑等)的特定集合。虚拟设备管理器从一个或多个设备模板创建虚拟设备。虚拟设备可以继承来自一个或多个设备模板的设备属性集合。一旦创建虚拟设备,虚拟设备管理器就可以通过网络在虚拟设备与物理设备之间建立连接,并且可以然后使用虚拟设备控制物理设备。在任何时间,用于物理设备的新的虚拟设备可以基于新的和/或改变后的设备模板而得以创建,并且可以用于控制物理设备或有互联网能力的设备和/或与之进行对接。
现参考附图,图1是描述示例网络架构100的框图,网络架构100包括远程可访问设备135A-135C以及与远程可访问设备135A-135C交互的计算设备105、125A、125B。网络架构100包括连接到局域网(LAN)165的多个设备135A-135C。因此,设备135A-135C可以称为联网设备。
在一个实施方式中,设备135A-135C是具有嵌入式***150A-150C的设备,并且可以包括例如电器(例如冰箱、烤箱、洗衣机、干燥机、洗碗机、恒温器、报警器、空调器、电视、无线电、接收机、放大器等)。设备135A-135C可以还包括消费者设备(例如数码手表、音乐播放器、游戏控制台、数码相机、打印机等)。设备135A-135C的其它示例包括固定设备(例如HVAC***、交通灯、工厂控制器、标牌、电子广告牌、喷洒器***和灌溉控制***以及医疗设备)。嵌入式***150A-150C也可以称为联网设备。设备135A-135C也可以是包括嵌入式***的任何其它类型的设备。可替选地,一个或多个设备135A-135C可以不包括嵌入式***。
嵌入式***150A-150C是嵌入到另一设备中作为设备的一个部件的一类计算设备。设备135A-135C典型地还包括可以与嵌入式***150A-150C进行对接的其它硬件、电气部件和/或机械部件。嵌入式***150A-150C典型地被配置为处理特定任务或任务集合,嵌入式***150A-150C可以针对该特定任务或任务集合进行优化。相应地,与普通计算设备相比,嵌入式***150A-150C可以具有最小成本和尺寸。
嵌入式***150A-150C可以各自包括通信模块(未示出),其使得嵌入式***150A-150C(因而设备135A-135C)能够连接到LAN 165或无线运营商网络(其使用各种数据处理设备、通信塔等被实现)。通信模块可以被配置为:管理安全性,管理会话,管理访问控制,管理与外部设备的通信等。
在一个实施方式中,通信模块被配置为使用进行通信。可替选地,通信模块可以被配置为:使用针对低功率无线域网络的互联网协议版本6(6LowPAN)、电力线通信(PLC)、以太网(例如10兆字节(Mb)、100Mb和/或1吉字节(Gb)以太网)或其它通信协议进行通信。如果通信模块被配置为与无线运营商网络进行通信,则通信模块可以使用全球移动通信***(GSM)、码分多址(CDMA)、通用移动通信***(UMTS)、3GPP长期演进(LTE)、微波接入全球互通(WiMAX)或任何其它第二代无线电话技术(2G)、第三代无线电话技术(3G)、***无线电话技术(4G)或其它无线电话技术进行通信。
LAN 165包括路由器、交换机、桥接器或使得能够在连接到LAN 165的多个设备之间进行通信的其它网络设备(未示出)。网络设备可以使用例如以太网端口、通用串行总线(USB)端口和/或端口提供与LAN的有线连接。网络设备可以使用例如Wi-Fi收发机另外提供与LAN的无线连接。
一些嵌入式***150A-150C可能不支持网络设备所支持的任何通信类型。例如,设备135C可能支持Zigbee,而设备135B可能支持蓝牙。为了使得这些设备能够与LAN 165A连接,LAN 165A可以包括经由网络设备所支持的连接类型之一(例如,经由以太网或Wi-Fi)连接到网络设备的网关设备190。网关设备190可以另外支持其它通信协议(例如Zigbee、PLC和/或蓝牙),并且可以在所支持的各通信协议之间进行转译。相应地,一些设备(例如设备135C)可以通过网关设备190连接到LAN 165和/或WAN 170。
LAN 165(或无线运营商)连接到广域网(WAN)170。WAN 170可以是私有WAN(例如内部网)或公共WAN(例如互联网),或可以包括私有网络和公共网络的组合。LAN 165可以包括提供与WAN 170的连接的路由器和/或调制解调器(例如有线调制解调器、直连串行链路(DSL)调制解调器、微波接入全球互通调制解调器、长期演进调制解调器等)。
WAN 170可以包括或连接到一个或多个服务器计算设备125A-125B。服务器计算设备125A-125B可以包括物理机器和/或以物理机器作为主机的虚拟机。物理机器可以是机架安装服务器、台式计算机或其它计算设备。在一个实施方式中,服务器计算设备125A-125B包括由云提供商***管理和提供的虚拟机。由云服务提供商所提供的每个虚拟机可以在配置作为云的一部分的物理机器上。这些物理机器一般位于数据中心中。云提供商***和云可以提供作为基础设施即服务(IaaS)层。这种云的一个示例是的弹性计算云
服务器计算设备125A作为一个或多个WAN可访问服务130的主机,其可以是基于web的服务和/或云服务(例如在云计算平台中的基于web的服务)。WAN可访问服务130可以(例如经由连续连接或断续连接)与嵌入式***150A-150C中的一个或多个保持会话。可替选地,WAN可访问服务130可以周期性地建立与嵌入式***150A-150C的会话。会话和连接可以处于在服务器计算设备130上运行的虚拟设备185A-185C与设备135A-135C之间。
经由与嵌入式***150A-150C(或设备135A-135C)的会话,WAN可访问服务130可以使用适当的虚拟设备185A-185C将命令发放到嵌入式***(或设备135A-135C),和/或从嵌入式***(或设备135A-135C)接收状态更新。因此,虚拟设备185A-185C可以用于控制设备135A-135C。命令可以是用于改变可由嵌入式***控制的设备的一个或多个参数的状态的命令。例如,如果嵌入式***嵌入在加热器或恒温器中,则命令可以包括用于升高或降低温度的命令。在另一示例中,如果嵌入式***嵌入在家庭自动化***中,则命令可以包括用于打开或关闭灯的命令。
从嵌入式***150A-150C接收到的状态更新可以标识包括嵌入式***的设备135A-135C的一些或所有可检测的参数的值或状态。状态更新也可以包括故障信息、统计设备使用信息、跟踪数据和/或其它信息。这些值、状态和/或其它信息可以基于与设备的直接用户交互而改变。这些值、状态和/或其它信息也可以响应于由WAN可访问服务130和/或计算设备105A-105C经由合适的虚拟设备185A-185C发送给嵌入式***150A-150C的命令而改变。此外,嵌入式***150A-150C的值、状态和其它信息可以基于嵌入式***的环境条件而改变。通过保持或周期性地建立与嵌入式***150A-150C的会话,WAN可访问服务130可以保持关于设备135A-135C的最新信息,并且该最新信息可以反映在虚拟设备185A-185C中。
在一个实施方式中,WAN可访问服务130包括模板管理器126和虚拟设备管理器128。模板管理器126创建、修改并且通过其它方式管理设备模板的池。模板管理器126可以生成和/或修改模板,而无需用户执行任何编程。在一个实施方式中,模板管理器126提供使得用户能够容易地在设备模板中定义设备属性的用户接口(例如图形用户接口)。以下参考图2A更详细地讨论模板管理器126。
返回参考图1,每个设备模板定义设备135A-135C的一个或多个属性。属性可以是被硬布线、硬编码或制造到设备135A-135C中的物理属性。这些物理属性的示例包括传感器和传感器能力、输入设备(例如按钮)和输入设备的操作、输出设备(例如扬声器、显示器等)和输出设备的操作、伺服器和伺服器设置、电机和电机设置等。物理属性可以附加地包括设备中的加载到设备135A-135C(例如嵌入式***150A-150C)中的固件和/或软件的能力、行为、特性等。
每个设备模板另外定义用于设备135A-135C的一个或多个逻辑属性或行为属性。逻辑属性(又称为行为属性)可以包括商业逻辑(例如可以不编程到设备中的行为、通知、规则、访问控制、派生性质等)。逻辑属性可以转而由代表物理设备135A-135C的虚拟设备185A-185C提供。例如,恒温器可以包括温度设置点以及用于改变温度设置点的控件。针对恒温器建立的虚拟设备可以包括规定要在工作日的上午7:00应用70华氏度的温度最小值的规则。虚拟设备可以在内部将温度设置点改变为70华氏度,并且可以将命令发送到物理设备,以在物理设备上将设置点改变为70华氏度。在该示例中,将温度设置点以及可用于设置温度设置点的控件看作物理设备的物理属性,并且将用于控制何时改变温度设置点的规则看作分配给物理设备的逻辑属性。
模板管理器126另外将模板与设备135A-135C关联。在一个实施方式中,模板管理器126将每种类型的设备与特定模板或模板的组合关联。设备类型可以包括特定制造商(OEM)、特定型号和/或特定版本号(例如固件版本号)。因此,可以基于制造商、设备型号和/或固件版本而使用不同的模板。
虚拟设备管理器128生成用于每个物理设备135A-135C的虚拟设备185A-185C的实例。物理设备135A-135C可以均具有相同设备类型,或可以具有来自相同或不同制造商的不同设备类型。例如,可以针对OEM的特定产品的每个单元创建单独的虚拟设备185A-185C。
从一个设备模板或设备模板集合生成每个虚拟设备185A-185C。所创建的虚拟设备185A-185C从用于创建虚拟设备的设备模板中的每一个继承设备属性。虚拟设备185A-185C然后连接到特定物理设备135A-135C(例如连接到特定物理设备135A-135C的嵌入式***150A-150C),并且可以用于监控该物理设备,与该物理设备进行对接并且控制该物理设备。
服务器计算设备125B包括一个或多个第三方服务162。第三方服务162可以是由除了包括WAN可访问服务130的IoT平台的提供商之外的实体所提供的服务。如所示,服务器计算设备125B可以直接地或经由WAN 170连接到服务器计算设备125A。第三方服务的示例包括天气服务(例如提供现时天气馈给的天气服务)、时间服务(例如原子钟)、丰富站点摘要(RSS,又称为真正简易聚合)馈给、关于地区的地震数据(例如在大地震的情况下可用于切断设施)、保持跟踪消费者支付的以OEM为主的服务(例如如果未接收到支付则可用于关闭设备控件)等。对于涉及外部服务的动作,用户可以录入他们的证书,或完成用于提供授权的授权过程,从而关于外部服务代表用户执行动作。
虚拟设备185A-185C可以代表关联的物理设备135A-135C与第三方服务162进行对接。虚拟设备185A-185C可以与第三方服务162进行对接,以获得可用于更新设备的信息。此外,虚拟设备185A-185C可以与第三方服务162进行对接,以提供关于物理设备135A-135C的通知和信息。
计算设备105可以包括便携式设备(例如电子书阅读器、便携式数字助理、移动电话、膝上型计算机、便携式媒体播放器、平板计算机、相机、摄像机、上网本、笔记本等)。计算设备105还可以包括传统固定设备(例如台式计算机、游戏控制台、数字视频盘(DVD)播放器、媒体中心等)。计算设备105可以与WAN 170和/或LAN 165连接。
计算设备105可以包括远程控制应用(或多个远程控制应用)115,其能够经由虚拟设备185A-185C接收关于设备135A-135C的信息并且控制该设备135A-135C。远程控制应用115被配置为与一个或多个虚拟设备185A-185C进行对接,并且可以将命令发放到所连接的虚拟设备185A-185C。虚拟设备185A-185C然后可以将命令格式化为关联的物理设备185A-185C所使用的协议,和/或在该协议中生成新命令。虚拟设备185A-185C然后可以(例如经由设备的嵌入式***150A-150C)将新的或修改后的命令发送给关联的物理设备135A-135C,以控制物理设备135A-135C。
远程控制应用115可以被编程为运行于各种操作***(例如,举几个例子为操作***、操作***、操作***、操作***和操作***)上。远程控制应用115也可以被配置作为固件,硬件、或软件、固件和/或硬件的某种组合。远程控制应用115可以包括图形用户接口(GUI),其使得用户能够通过直观且用户友好的方式与设备135A-135C进行交互并且控制设备135A-135C。用户可以与GUI进行交互,以使得远程控制应用生成针对GUI中所表示的设备的通知、命令、性质更新和其它消息。
在一个实施方式中,远程控制应用115与模板管理器126进行对接,以生成新模板,以修改现有模板。模板管理器126可以提供远程控制应用115用以生成和/或修改模板的应用编程接口(API)。可替选地,用户可以访问模板管理器126以经由从web浏览器可访问的web接口生成和/或修改规则。
图2A是根据本发明一个实施方式的模板管理器205的框图。在一个实施方式中,模板管理器205对应于图1的模板管理器126。模板管理器205包括用于设计、创建、修改以及通过其它方式管理设备模板的功能。模板管理器205包括模板编辑器210、模板关联模块215以及用户接口218。可替选地,模板编辑器210、用户接口218和/或模板关联模块215的功能可以划分到附加模块,或可以组合到单个模块。
模板编辑器210负责创建新设备模板并且编辑现有模板。模板编辑器210可以创建空白模板,或可以基于现有模板而创建新模板。模板编辑器210可以接收用于在模板中填写字段和/或项的模板数据220,其中,每个字段或项可以用于特定设备属性。用户可以经由用户接口218输入或选择模板数据220。可替选地或附加地,可以从现有模板和/或其它资源导入模板数据220。
设备模板232A-232C中的每个定义一个或多个设备属性240A-240C。设备属性240A-240C可以是物理设备的物理属性和/或要由虚拟设备针对物理设备提供的逻辑属性。一些设备模板可以是定义用于特定设备(例如来自特定OEM的特定型号和版本的设备)的所有物理属性和逻辑属性的单机模板。此外,一些设备模板可以仅定义用于物理设备的属性的子集。例如,可以针对设备的逻辑属性创建第一模板,并且可以针对设备的物理属性创建第二模板。物理性质模板可以指定设备的物理属性集合(例如设备的传感器、设备的控件和/或设备的其它能力)。物理性质模板可以是用于设备的最低等级模板,并且可以映射为设备的实际命令和能力。因此,物理性质模板可以定义用于物理设备的核心数据类型,并且提供用于与设备进行对接而且控制该设备的原始API。
在一些情况下,可以创建用于共享一些特性的多个不同设备的设备模板。例如,可以创建要用于来自特定OEM的多个不同型号的相似类型的设备的单个设备模板。在另一示例中,可以设置定义可以由很多设备共享的特定部件或可以由很多设备使用的特定协议的性质的单个设备模板。例如,可以创建用于Zigbee协议或Wi-Fi 802.11n协议的设备模板。然后可以将这些模板用于使用特定协议(设备模板针对其得以创建)的任何设备。在另一示例中,可以创建定义OEM可能想要应用于很多不同类型的设备的商业逻辑的模板。例如,可以设置包括标识什么实体在什么情况下发送通知的通知规则的模板。例如,通知模板可以提供与跟踪连接性事件的第三方服务的第三方整合。这通过将包含统一资源定位符(URL)的新通知模板与第三方服务的鉴权参数关联而能够在数百万个设备上在任何时间得以实现。
在一个实施方式中,可以创建设备角色模板,该设备角色模板定义与从模板创建的虚拟设备关联的角色。每个角色可以批准访问资源集合。角色的示例包括终端用户或消费者角色、原始设备制造商(OEM)管理者角色、OEM账户管理员角色、交易商角色、技术人员角色等。OEM管理者角色可以访问组织的所有OEM用户简档以及作为OEM产品的消费者的人员的终端用户简档。如果消费者批准交易商访问,则交易商角色可以访问消费者简档以及其它信息。资源可以是联网设备、联网设备的属性或参数、其它用户等。例如,OEM可能想要通过交易商销售设备,并且使得该交易商能够监控通过该交易商销售的设备(例如,用于维护)。因为这使得交易商能够访问消费者的设备,所以这具有访问控制暗示。通过分配给设备的新角色模板,具有交易商角色的任何用户可以能够访问这些设备,并经受访问控制检验。
在一个实施方式中,可以创建设备注册模板,该设备注册模板定义使用什么注册技术将设备注册到用户账户。当终端用户购买设备时,该设备可能初始并未注册到任何用户账户。终端用户可能期望将设备注册到他的用户账户,以获取对该设备的访问并且针对该设备进行控制。例如,用户可以购买并且安装有互联网能力的烤箱、洗碗机、干燥机或洗衣机。通过将有互联网能力的设备注册到用户账户,该用户账户获取用于监控和/或控制该设备的能力。在一个实施方式中,可以通过注册过程对用户账户批准多个不同的许可等级之一。第一许可等级可以许可对设备的监控,但不许可对设备的任何控制。作为示例,第二许可等级可以许可对一些设备功能或设置(例如所有设备功能或设置的子集)的控制,并且第三许可等级可以许可对所有设备功能和设置的控制。
注册模板可以定义要用于注册未经注册设备的一种或多种注册技术。所定义的注册技术可以是设备所支持的注册技术。每种注册技术可以与一个或多个注册操作关联。所执行的特定注册操作取决于所选择的特定注册技术。可以被执行的操作的示例包括:从未经注册设备接收注册信息,提示用户输入注册信息,生成注册信息,将注册信息发送给未经注册设备,以及将注册信息和/或其它信息发送给注册服务。此外,在各注册技术之间所收集的注册信息的类型可以不同,并且针对不同注册技术的注册准则可以不同。
在第一示例注册技术中,远程控制应用使得移动设备(在其上远程控制应用正在运行)的屏幕以将码提供给设备的方式产生脉冲。设备然后可以将码报告给注册服务,以用于注册。在第二示例中,未经注册设备将唯一码显示在显示器上,并且用户浏览该唯一码并将其提供给注册服务,以用于注册。在第三示例中,用户经由文本消息、电子邮件等从web网站接收唯一码,并将唯一码提供给设备,以用于注册。很多其它注册技术也是可以的。
注册模板可以另外包括控制在不同的情况下要应用哪些注册技术的规则。在一个示例中,注册技术选择规则指示要基于未经注册设备的位置而选择注册技术。例如,OEM可以指定第一注册技术要用于在欧洲的设备,第二注册技术要用于在中国的设备,并且第三注册技术要用于在美国的设备。在另一示例中,注册技术选择规则指示要基于远程控制应用所登录到的用户账户的角色而选择注册技术。相应地,如果交易商正将未经注册设备安装在消费者的家庭中,则可以使用第一注册技术,而如果消费者正自己安装未经注册设备,则可以应用第二注册技术。也可以应用很多其它注册技术选择规则。
在一个实施方式中,可以创建定义用于执行动作(例如,发送通知,发送命令等)的规则的设备规则模板。每个规则可以采取一个或多个事件作为输入,并且产生通知和/或命令作为输出消息。可以从一个或多个联网设备和/或服务接收输入,并且可以将输出发送给一个或多个联网设备和/或服务。可以将输出发送给同一联网设备(从其接收输入)或其它联网设备。在一个实施方式中,每个输入和输出被建模为馈给。馈给可以是触发动作的输入馈给或自身可以为动作的输出馈给。通过用户定义的规则可以将松弛地耦接的馈给绑定在一起。
一些模板可以包括物理设备的派生性质。派生性质是从物理设备的另一(通常为物理)性质或属性(或其它性质或属性的集合)派生出的逻辑性质或属性。派生性质可以包括用于对关于一个或多个其它属性的值执行的操作的定义。例如,恒温器可以与测量以华氏度为单位的温度的传感器硬连线。然而,该恒温器可能在使用摄氏度单位测量温度的国家销售。因此,可以设置将华氏温度测量转换为摄氏温度测量的派生性质。然后可以设置面向用户的设备的其它属性,以执行动作,并且基于派生性质而非物理设备实际上所使用的基本属性而显示数据。因此,即使设备以华氏度为单位运行,也可以对用户显现设备以摄氏度为单位而运行。派生性质另外可以将来自用户的和/或由其它属性触发的命令转换成物理设备所使用的值和单位。派生性质使得虚拟设备能够以很多不同方式呈现来自物理设备的相同数据。派生性质的其它示例是可以从一个或多个其它性质计算得到的各种统计。例如,派生性质可以是另一性质的平均值或来自一个或多个其它属性的两个值(例如开始时间和停止时间)之间的增量。也可以在模板中设置很多其它类型的派生性质。
模板编辑器210可以将范围分配给所创建的模板。范围可以控制什么实体可以浏览、使用和/或修改这些模板。一个示例范围是私有范围。具有私有范围的模板仅对模板的创建者是可浏览的。模板的另一示例范围是OEM范围。具有OEM范围的模板对来自OEM组织的任何人是可浏览的。另一示例范围是公共范围。具有公共范围的模板可以是公共地可浏览的。一些公共地可浏览的模板的示例包括针对公共标准所配置的模板(例如定义Zigbee智能插头数据模型和智能家居(homekit)数据模型等的Zigbee智能插头模板,所述Zigbee智能插头数据模型能够用于遵循Zigbee标准的任何智能插头,所述智能家居数据模型能够用于遵循特定规范的任何设备)。另一示例范围是对于OEM以及该OEM的特定企业消费者可浏览的企业消费者范围。
模板关联模块215将特定设备和/或设备的类型关联于设备模板232A-232C。单个设备(例如OEM的特定产品)可以与单个设备模板或与多个不同设备模板关联。通过分配给设备的产品标识符可以标识该设备。可以在OEM内和/或各OEM之间复用设备模板(对于共用设备模板)。因此,多个不同设备可以均与同一设备模板关联。因此,如果要对所有这些设备进行相同改变,则可以通过修改与设备中的每一个关联的设备模板来实现改变。
在一些情况下,OEM可以选择供给可以将增强的体验提供给一些消费者而非其他消费者的优质内容。可以通过关联具有提供优质内容的属性/性质的不同设备模板而得以简单地供给这种优质内容。在其它情况下,可以通过将固件升级发送给物理设备并且将与该物理设备关联的升级后的模板补充给所述固件升级来提供优质内容。模板关联模块215可以检测固件升级已经被推送到物理设备,并且可以自动地将与该固件升级对应的新模板关联于物理设备。可替选地,在固件升级已经发放到物理设备之前,新模板可以与该物理设备关联。模板管理器205可以检测新模板依赖于固件升级所提供的功能,并且可以响应于此而自动地将固件升级下载并且安装到物理设备上。
用户接口218是用于创建并且编辑设备模板的直观接口。用户接口218可以是图形用户接口(GUI)或功能用户接口。用户接口218可以提供表示要在模板中包括的用于设备的不同参数和属性的状态和值的图形图标、视觉指示符、按钮、开关、滑动条等。用户可以与用户接口218进行交互,以将设备属性分配给模板。模板管理器205也可以提供其它应用(例如远程控制应用)能够用于编辑并且创建模板的应用编程接口(API)。
用户接口218可以提供用于选择用于模板的设备属性的选项。用户接口218可以提供公共设备属性的下拉菜单或其它列表。这些可以包括可以用在模板中的参数、设置、特征、通知、商业逻辑、角色、规则、注册技术等。用户接口218也可以使得用户能够定义新的属性。用户接口218也可以为用户提供下拉菜单或其它接口,以将设备模板与特定设备或设备类型关联。
图2B是根据本发明一个实施方式的虚拟设备管理器250的框图。在一个实施方式中,虚拟设备管理器250对应于图1的虚拟设备管理器128。虚拟设备管理器250包括用于创建虚拟机并且将虚拟机连接在一起并连接到物理设备的功能。虚拟设备管理器250包括模板确定器255、虚拟设备创建器260和连接模块265。可替选地,模板确定器255、虚拟设备创建器260和/或连接模块265的功能可以划分到附加模块,或可以组合到单个模块。
当联网设备(又称为物理设备)获取网络访问、通电等时,该物理设备可以将消息发送给虚拟设备管理器250,以通知该设备的虚拟设备管理器250。通知可以包括标识物理设备的特定设备型号、OEM、版本号、介质访问控制(MAC)地址、序列号、网络地址等的信息。例如,通知可以包括唯一设备标识符。
模板确定器255可以使用所提供的信息以确定物理设备的设备类型。模板确定器255可以另外确定哪些设备模板232A-232C与该设备类型关联,其中,设备模板232A-232C中的每一个包括不同设备属性240A-240C。模板确定器255然后可以调用虚拟设备创建器260,并且向虚拟设备创建器260传送物理设备的网络地址和与对该物理设备关联的设备模板232A-232C的标识。
虚拟设备创建器260从所标识的与物理设备关联的设备模板232A-232C生成虚拟设备270。虚拟设备270可以是模拟物理设备的数据结构。虚拟设备从设备模板232A-232C继承设备属性240A-240C,它们一起构成设备属性275。设备属性275可以包括物理设备实际上所具有的属性(例如物理设备属性)的超集。例如,设备属性275可以另外包括由服务器计算设备代表物理设备所实现的逻辑设备属性。在服务器上(例如在云中)执行设备的一些操作并且在物理设备上实际上执行其它操作的事实对于终端用户可以是透明的。
一旦创建虚拟设备270,连接模块265就将虚拟设备270连接到物理设备。针对每个物理设备创建单独的虚拟设备。每个虚拟设备然后可以用于管理并且控制其通过网络所连接的特定物理设备。
图3A是描述虚拟设备338与附加设备(例如物理设备320、服务器计算设备310和计算设备315)之间的交互的框图。服务器计算设备305掌控虚拟设备338以及一个或多个WAN可访问服务340。虚拟设备338是已经针对通过网络连接到虚拟设备338的物理设备320而创建的虚拟设备。
物理设备320拥有物理属性335的集合。每个物理属性是在物理设备320具有与虚拟设备的连接或没有与虚拟设备的连接的情况下物理设备320的属性。物理属性335可以包括物理设备的输入和输出、可用于控制物理设备320的控件、物理设备的部件、部件的设置点和值范围等。使用虚拟设备338可以极大地扩增物理设备320的功能。
虚拟设备338可以包括物理设备的所有物理属性335。此外,虚拟设备338可以包括虚拟设备338代表物理设备所拥有的而物理设备并非固有地拥有的很多逻辑属性(例如性质、特性、行为、功能等)。这些逻辑属性的示例包括派生性质350、通知规则352、商业逻辑(例如附加规则、注册技术等)354等。虚拟设备338可以另外包括可用于向物理设备320发送指令并且从物理设备320接收数据的物理设备接口346。虚拟设备338可以另外包括用于与WAN可访问服务340、第三方服务325和/或远程控制应用330进行通信的应用(app)和/或web服务器接口348。基于虚拟设备338的逻辑属性和/或物理属性,虚拟设备可以生成经由app/web服务器接口348发送到第三方服务325、WAN可访问服务340和/或远程控制应用330的命令和/或通知。
图3B是描述虚拟设备与附加设备之间的交互的附加框图。在一些情况下,针对特定物理设备生成多个不同虚拟设备。例如,图3B示出已经针对第一物理设备266A创建的第一等级虚拟设备380A和第二等级虚拟设备378A以及已经针对第二物理设备366B创建的第一等级虚拟设备380B和第二等级虚拟设备378B。
即使物理设备366A-366B可能是来自不同制造商并且具有不同物理属性374A-374B的不同设备,使用针对物理设备的多个层或等级的虚拟设备也会使得服务和应用能够使用公共应用编程接口(API)与物理设备366A-366B间接对接。此外,即使第一等级虚拟设备380A-380B可能具有不同逻辑属性384A-384B、物理属性374A-374B以及物理设备接口388A-388B,使用第二等级虚拟设备378A-378B也会使得服务和应用(例如远程控制应用370A-370B)能够与第一等级虚拟设备380A-380B进行对接并且对其进行控制。
在示例中,物理设备366A可以是具有独特物理属性374A集合的来自第一制造商的恒温器。第一等级虚拟设备380A可以配置有物理设备366A的物理属性374A以及对于该物理设备366A特定的逻辑属性384A。物理设备366B可以是具有独特物理属性374B集合的来自第二制造商的洗碗机。第一等级虚拟设备380B可以配置有物理设备366B的物理属性374B以及对于该物理设备366B特定的逻辑属性384B。第二等级虚拟设备378A和第二等级虚拟设备378B可以是从相同模板生成的虚拟设备的单独实例。第二等级虚拟设备378A-378B中的每一个可以包括远程控制应用370A-370B能够用于与第二等级虚拟设备378A-378B进行通信的公共API。第二等级虚拟设备378A-378B包括将来自远程控制应用370A-370B的命令转译为能够由特定第一等级虚拟设备380A-380B作用的命令的应用接口395A-395B。此外,第二等级虚拟设备378A-378B可以将来自第一等级虚拟设备380A-380B的数据转译为能够由远程控制应用370A-370B使用的公共格式。这样使得单个远程控制应用370A-370B能够用于与多个不同类型的设备进行对接并且对其进行控制。
图4A-图5是示出实施虚拟设备以扩增并且控制物理设备的功能的多种方法的流程图。所述方法可以通过可以包括硬件(例如电路、专用逻辑、可编程逻辑、微码等)、软件(例如运行在处理设备上以执行硬件仿真的指令)或其组合的处理逻辑来执行。各个实施方式可以通过执行虚拟设备的服务器计算设备(例如图1的服务器计算设备125)来执行。
图4A是用于使用虚拟设备控制物理设备的方法400的一个实施方式的流程图。在方法400的块405,处理逻辑确定与物理设备关联的一个或多个设备模板。可以响应于物理设备尝试与服务器和/或一个或多个WAN可访问服务连接而自动地执行块405的操作。也可以响应于用于生成新虚拟设备的命令而在任何其它时间执行块405的操作。
在块410,处理逻辑从所确定的设备模板创建新虚拟设备。在块415,处理逻辑然后在虚拟设备与物理设备之间建立连接。该连接可以是连续连接或断续连接。
在块420,处理逻辑确定是否将针对物理设备使用第二等级虚拟设备。例如,可以使用第二等级虚拟设备,以将通用接口或公共接口提供给服务和/或应用。如果要使用第二等级虚拟设备,则方法继续于块425。否则,方法继续于块440。
在块425,处理逻辑确定与物理设备关联的一个或多个附加设备模板。附加设备模板可以被指定为第二等级设备模板。这些设备模板可以包括与第一等级设备模板中所包括的设备属性相同的、不同的或附加的数据。该附加数据可以包括用于与应用和服务进行通信的公共指令集,以及公共指令集与对于很多不同物理设备和/或第一等级虚拟设备特定的指令集之间的转译。在块430,处理逻辑从一个或多个附加设备模板创建用于物理设备的第二等级虚拟设备。在块435,处理逻辑将第二等级虚拟设备连接到第一等级虚拟设备。第一等级虚拟设备和第二等级虚拟设备可以都在同一服务器机器上执行。因此,第一等级虚拟设备与第二等级虚拟设备之间的连接可以是逻辑连接。
在块440,处理逻辑使用虚拟设备(或多个虚拟设备)控制物理设备。控制物理设备可以包括:基于驻留在虚拟设备中的逻辑规则而确定要分配给物理设备参数和/或设置的值,并且然后将用于实施所确定的用于参数和/或设置的值的控件发送给物理设备。控制物理设备另外可以包括:在虚拟设备中从远程控制应用接收命令,并且将这些命令(在将命令转译为对于物理设备可理解的格式之后潜在地)转发给物理设备。
图4B是用于基于改变与物理设备关联的一个或多个模板而改变该物理设备的性质和/或功能的方法450的一个实施方式的流程图。在方法450的块455,处理逻辑确定与物理设备关联的一个或多个设备模板。在块460,处理逻辑从所确定的设备模板创建虚拟设备。在块465,处理逻辑然后在虚拟设备与物理设备之间建立连接。连接可以是连续连接或断续连接。
在块470,处理逻辑确定是否存在对于物理设备可用的任何新固件升级或更新。如果是,则方法继续于块475。否则,方法继续于块480。
在块475,处理逻辑执行对物理设备的更新(例如空中(OTA)更新)。这可以包括:将更新下载到物理设备,并且使得该更新安装在用户设备上。
固件更新可以引入或不引入要伴随有修改后的设备模板的新功能。此外,在一些情况下,新设备模板或修改后的设备模板可以与物理设备关联,而无需任何固件更新。例如,模板可以被修改为针对物理设备实施新的逻辑属性或不同的逻辑属性或其它基于云的功能,而无需任何固件改变。
在块480,处理逻辑确定是否已经存在与物理设备关联的模板的任何改变。对关联模板的改变可以包括:对先前与物理设备关联的现有模板的修改,添加之前并非与物理设备关联的新模板,和/或去除之前与物理设备关联的模板。如果已经存在与物理设备关联的模板的任何改变,则方法继续于块485。否则,方法结束。
在块485,处理逻辑将虚拟设备与物理设备断开连接。处理逻辑另外终止虚拟设备。方法可以然后返回到块455,以确定新的关联设备模板,并且创建用于物理设备的新虚拟设备。
设备用于在固件升级之后在云上获取新性质的能力允许OEM推出改变,而无需新的云开发(例如,无需写入用于在服务器机器上执行的新代码)。可以通过构建新模板和/或将固件升级推送给物理设备来简单地实现这些新性质。此外,可以对已经部署到消费者位置的设备在运行中修改物理设备的性质、功能和属性。可以容易地对所有所部署的和/或未销售的设备执行这些改变。例如,OEM可以在按下按钮时禁止或启用特定角色(例如交易商)对所部署的设备进行访问。
OEM可以选择实施对所部署的设备的子集的改变。例如,OEM可以将物理设备群组划分为第一子群组和第二子群组。OEM可以然后将新的唯一模板与第一子群组关联。OEM然后可以在各子群组之间执行A-B测试,以确定是否对于更大群组中的所有物理设备实施新的唯一模板。例如,洗衣机的制造商可以创建添加新旋转周期的新模板。该模板然后可以与5%的所部署的洗衣机关联,以提供新旋转周期。如果新旋转周期受消费者欢迎,则OEM可以将该新旋转周期添加到其余的物理设备。
图5是用于使用虚拟设备控制物理设备的方法500的另一实施方式的流程图。在方法500的块505,处理逻辑从与物理设备关联的一个或多个设备模板生成用于物理设备的第一等级虚拟设备。在块508,处理逻辑在第一等级虚拟设备与物理设备之间建立连接。在块510,处理逻辑从一个或多个附加设备模板生成第二等级虚拟设备。在块515,处理逻辑在第一等级虚拟设备与第二等级虚拟设备之间建立连接。
第二等级虚拟设备提供使得多个不同类型的虚拟设备能够连接到公共远程控制应用的抽象等级。例如,洗衣机制造商可以具有三种基本的第一等级模板,该三个基本的第一等级模板描述他们的洗衣机如何工作。可以创建第二等级模板,该第二等级模板将第二等级模板的功能映射到三种不同第一等级模板中的每一个中的不同但相似的功能。来自同一第二等级模板的虚拟设备于是将暴露于用于三种不同洗衣机中的每一个的远程控制应用。OEM可以另外设置用于不同角色的不同第二等级模板。例如,OEM第二等级模板可以用于创建用于与OEM的通信的虚拟设备,并且交易商第二等级模板可以用于创建用于与交易商的通信的虚拟设备。这些单独的第二等级虚拟机可以具有不同的功能、不同的接口等。
在块520,处理逻辑在第二等级虚拟设备与远程控制应用(例如可以在移动设备上执行的远程控制应用)之间建立连接。在块525,处理逻辑在第二等级虚拟设备中从远程控制应用接收指令。在块530,处理逻辑将第二等级虚拟设备中的指令转换为第一等级虚拟设备能够作用于的新指令。这可以包括:从接收到的指令生成新指令。
在块532,处理逻辑可以确定是否能够在虚拟设备中执行指令或是否应在物理设备中执行指令。如果应在物理设备中执行指令,则方法继续于块535。否则,方法继续于块533,并且指令由处理逻辑在第一虚拟设备中执行。
在块535,处理逻辑将第一等级虚拟设备中的指令转译为物理设备能够作用于的指令。这可以包括:基于接收到的指令生成新指令。处理逻辑然后可以将该指令发送给物理设备。在已经执行指令之后,可以将更新后的数据(例如更新后的设备状态和/或其它通知)发送给第二等级虚拟设备,第二等级虚拟设备然后可以将数据转发给远程控制应用。
图6示出以计算设备600的示例形式的机器的图示,在该机器中可以执行用于使得机器执行在此所讨论的方法中的任何一种或多种的指令集。在可替选实施方式中,机器可以与在局域网(LAN)、内部网、外部网或互联网中的其它机器连接(例如联网)。机器可以在客户机-服务器网络环境中以服务器或客户机机器的身份操作或在点对点(或分布式)网络环境中作为配对机器操作。机器可以是个人计算机(PC)、平板计算机、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、web电器、服务器、网络路由器、交换机或桥接器、或能够执行指令集(顺序的或其它方式)的任何机器,所述指令集指定要由该机器采取的动作。此外,虽然仅示出单个机器,但术语“机器”还应包括单独地或联合地执行指令集合(多个集合)以执行在此所讨论的方法中的任何一种或多种的任何机器(例如计算机)集合。
示例计算设备600包括处理设备602、主存储器604(例如只读存储器(ROM)、闪存、动态随机存取存储器(DRAM)(例如同步DRAM(SDRAM)或Rambus DRAM(RDRAM))等)、静态存储器606(例如闪存、静态随机存取存储器(SRAM)等)以及副存储器(例如数据存储设备618),其经由总线630彼此进行通信。
处理设备602表示一个或多个通用处理器(例如微处理器、中央处理单元等)。更具体地说,处理设备602可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器、执行其它指令集的处理器或执行指令集的组合的处理器。处理设备602也可以是一个或多个专用处理设备(例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等)。处理设备602被配置为执行用于执行在此所讨论的操作和步骤的处理逻辑(指令622)。
计算设备600还可以包括网络接口设备608。计算设备600也可以包括视频显示单元610(例如液晶显示器(LCD)或阴极射线管(CRT))、字母数字输入设备612(例如键盘)、光标控制设备614(例如鼠标)以及信号生成设备616(例如扬声器)。
数据存储设备618可以包括其中存储有实施在本文所述方法或功能中的任何一种或多种的一个或多个指令集622的机器可读存储介质(或更具体地说,计算机可读存储介质)628。指令622也可以在其由计算机***600、主存储器604和也构成计算机可读存储介质的处理设备602执行期间完全地或至少部分地驻留在主存储器604内和/或处理设备602内。
计算机可读存储介质628也可以用于存储模板管理器690或虚拟设备管理器692(参考图2A-图2B所描述的)和/或包含调用模板管理器690或虚拟设备管理器692的方法的软件库。虽然计算机可读存储介质628在示例性实施方式中被示为单个介质,但术语“计算机可读存储介质”应看作包括存储一个或多个指令集的单个介质或多个介质(例如集中式或分布式数据库、和/或关联缓存和服务器)。术语“计算机可读存储介质”也应看作包括除了能够对用于由机器执行的指令集进行存储或编码并且使得机器执行在此所描述的方法中的任何一种或多种的载波之外的任何介质。术语“计算机可读存储介质”相应地应看作包括但不限于固态存储器以及光学介质和磁性介质。
在此(例如结合图1-图2B)所描述的模块、部件和其它特征可以实现为分立式硬件部件或集成在硬件部件(例如ASICS、FPGA、DSP或相似设备)的功能中。此外,模块可以实施为硬件设备内的固件或功能电路。此外,模块可以以硬件设备和软件部件的任何组合或仅以软件实施。
以上已经关于对计算机存储器内的数据比特进行的操作的算法和符号表示而提出了详细描述的一些部分。这些算法描述和表示是由数据处理领域技术人员用于最高效地将他们的工作的实质性传达给其它本领域技术人员的手段。在这里以及通常而言,算法被构想为带来期望结果的自洽步骤序列。所述步骤是需要对物理量进行物理操控的步骤。虽然并非必要,但通常这些量具有能够被存储、传送、组合、比较以及其它方式操控的电信号或磁信号的形式。已经证明:有时(主要出于普通使用的原因)将这些信号作为比特、值、元素、符号、字符、术语、数字等提及是方便的。
然而,应理解,所有这些术语和相似的术语是与适当的物理量关联的,并且仅是应用于这些量的方便的标记。除非另外具体地声明,从以下讨论可看出:应理解,在整个说明书中,使用例如“确定”、“创建”、“建立”、“控制”、“转译”等术语进行的讨论是指计算机***或相似电子计算设备的动作和处理,其对表示为计算机***的寄存器和存储器内的物理(电子)量的数据进行操控并且将其变换为相似地表示为计算机***存储器或寄存器或其它这样的信息存储设备、传输设备或显示设备内的物理量的其它数据。
本发明实施方式还涉及一种用于执行本文中的操作的装置。该装置可以被特定构造用于所讨论的目的,或其可以包括通过计算机***中所存储的计算机程序选择性编程的通用计算机***。该计算机程序可以存储在计算机可读存储介质(例如但不限于任何类型的盘(包括软盘、光盘、CD-ROM和磁光盘)、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁盘存储介质、光学存储介质、闪存设备、其它类型的机器可存取存储介质或均耦接到计算机***总线的适合于存储电子指令的任何类型的介质)中。
应理解,以上描述意在说明性而非限制性的。在阅读并且理解以上描述时,很多其它实施方式对于本领域技术人员将是显然的。虽然已经参考特定示例实施方式描述了本发明,但应理解,本发明不限于所描述的实施方式,而是可以在所附权利要求的精神和范围内通过修改和改动而得以实践。相应地,说明书和附图看作是说明性意义而不是限制性意义。因此,应参考权利要求连同这些权利要求所赋予的等同方案的完全范围一起来确定本发明的范围。
Claims (17)
1.一种管理物理设备的方法,包括:
由处理设备确定与第一物理设备关联的第一多个设备模板,其中,所述第一多个设备模板中的每一个定义一个或多个设备属性;
由所述处理设备从所述第一多个设备模板创建第一虚拟设备,其中,所述第一虚拟设备从所述第一多个设备模板继承所述一个或多个设备属性;
通过网络在所述第一虚拟设备与所述第一物理设备之间建立连接;以及
使用所述第一虚拟设备控制所述第一物理设备;
生成与所述第一虚拟设备进行对接的第二虚拟设备,其中,所述第二虚拟设备提供用于向所述第二虚拟设备发放命令的应用编程接口;
从远程应用接收命令,所述命令被递送到所述第二虚拟设备;
将所述命令转译为对于所述第一虚拟设备可操作的新命令;以及
由所述第一虚拟设备将所述命令发送给所述第一物理设备。
2.根据权利要求1所述的方法,其中,所述第一物理设备包括物理设备属性,并且,其中所述第一虚拟设备包括设备属性的超集,所述设备属性的超集包含所述第一物理设备的所述物理设备属性以及由所述第一虚拟设备针对所述第一物理设备提供的逻辑设备属性。
3.根据权利要求1所述的方法,其中,所述第一物理设备被部署到消费者位置,所述方法还包括:
确定与所述第一物理设备关联的第二多个设备模板,其中,所述第二多个设备模板中的至少一个定义新设备特性;
从所述第二多个设备模板创建第二虚拟设备,其中,所述第二虚拟设备继承所述新设备特性;
在所述第一物理设备与所述第二虚拟设备之间建立新连接;以及
使用所述第二虚拟设备控制所述第一物理设备。
4.根据权利要求3所述的方法,还包括:
响应于确定所述物理设备的固件已被更新而创建所述第二虚拟设备,所述固件包括所述新设备特性。
5.根据权利要求1所述的方法,还包括:
确定与第二物理设备关联的第二多个设备模板,其中,所述第二多个设备模板包括与所述第一多个设备模板的至少一个共用设备模板;
从所述第二多个设备模板创建第二虚拟设备;
在所述第二物理设备与所述第二虚拟设备之间建立新连接;以及
使用所述第二虚拟设备控制所述第二物理设备。
6.根据权利要求1所述的方法,其中,所述第一多个设备模板包括定义所述第一物理设备的物理属性以及用于控制所述第一物理设备的指令的物理属性设备模板、定义当满足所指定的条件时用于通知的实体的通知模板、以及定义可访问所述第一物理设备的实体的角色模板。
7.一种计算机可读存储介质,具有指令,所述指令当由处理设备执行时使得所述处理设备执行如下操作:
由所述处理设备从与物理设备关联的第一设备模板创建用于第一物理设备的第一虚拟设备,其中,所述第一虚拟设备从所述第一设备模板继承第一设备属性集合;
在改变所述第一设备模板之后,从改变后的第一设备模板创建用于所述第一物理设备的第二虚拟设备,其中,所述第二虚拟设备从改变后的第一设备模板继承在所述第一设备属性集合中未包括的至少一个新设备属性;
通过网络在所述第二虚拟设备与所述第一物理设备之间建立连接;以及
使用所述第二虚拟设备控制所述第一物理设备;
生成与所述第二虚拟设备进行对接的第三虚拟设备,其中,所述第三虚拟设备提供用于向所述第三虚拟设备发放命令的应用编程接口;
从远程应用接收命令,所述命令被递送到所述第三虚拟设备;
将所述命令转译为对于所述第二虚拟设备可操作的新命令;以及
由所述第二虚拟设备将所述命令发送给所述第一物理设备。
8.根据权利要求7所述的计算机可读存储介质,其中,从与所述物理设备关联的第一多个设备模板创建所述第一虚拟设备,其中,所述第一虚拟设备从所述第一多个设备模板继承所述第一设备属性集合。
9.根据权利要求8所述的计算机可读存储介质,所述操作还包括:
确定与第二物理设备关联的第二多个设备模板,其中,所述第二多个设备模板包括与所述第一多个设备模板的至少一个共用设备模板;
从所述第二多个设备模板创建第三虚拟设备;
在所述第二物理设备与所述第三虚拟设备之间建立新连接;以及
使用所述第三虚拟设备控制所述第二物理设备。
10.根据权利要求8所述的计算机可读存储介质,其中,所述第一多个设备模板包括定义所述第一物理设备的物理属性以及用于控制所述第一物理设备的指令的物理属性设备模板、定义当满足所指定的条件时用于通知的实体的通知模板、以及定义可访问所述第一物理设备的实体的角色模板。
11.根据权利要求7所述的计算机可读存储介质,其中,所述第一物理设备具有物理设备属性,并且,其中所述第一虚拟设备包括设备属性的超集,所述设备属性的超集包含所述第一物理设备的所述物理设备属性以及由所述第二虚拟设备针对所述第一物理设备提供的逻辑设备属性。
12.根据权利要求7所述的计算机可读存储介质,其中,在改变所述第一设备模板之前,所述第一物理设备被部署到消费者位置,并且,其中在创建所述第二虚拟设备之前,所述第一虚拟设备控制所述第一物理设备,所述操作还包括:
终止所述第一虚拟设备。
13.根据权利要求7所述的计算机可读存储介质,所述操作还包括:
响应于确定所述物理设备的固件已被更新而创建所述第二虚拟设备,所述固件包括所述新设备属性。
14.一种计算设备,包括:
存储器;以及
处理设备,与所述存储器连接,所述处理设备用于:
确定与第一物理设备关联的第一多个设备模板,其中,所述第一多个设备模板中的每一个定义一个或多个设备属性;
从所述第一多个设备模板创建第一虚拟设备,其中,所述第一虚拟设备从所述第一多个设备模板继承所述一个或多个设备属性;
通过网络在所述第一虚拟设备与所述第一物理设备之间建立连接;以及
使用所述第一虚拟设备控制所述第一物理设备;
生成与所述第一虚拟设备进行对接的第二虚拟设备,其中,所述第二虚拟设备提供用于向所述第二虚拟设备发放命令的应用编程接口;
从远程应用接收命令,所述命令被递送到所述第二虚拟设备;
将所述命令转译为对于所述第一虚拟设备可操作的新命令;以及
由所述第一虚拟设备将所述命令发送给所述第一物理设备。
15.根据权利要求14所述的计算设备,其中,所述第一物理设备包括物理设备属性,并且其中,所述第一虚拟设备包括设备属性的超集,所述设备属性的超集包含所述第一物理设备的所述物理设备属性以及由所述第一虚拟设备对于所述第一物理设备提供的逻辑设备属性。
16.根据权利要求14所述的计算设备,其中,在所述第一物理设备被部署到消费者位置之后,所述处理设备还用于:
确定与所述第一物理设备关联的第二多个设备模板,其中,所述第二多个设备模板中的至少一个定义新设备特性;
从所述第二多个设备模板创建第二虚拟设备,其中,所述第二虚拟设备继承所述新设备特性;
在所述第一物理设备与所述第二虚拟设备之间建立新连接;以及
使用所述第二虚拟设备控制所述第一物理设备。
17.根据权利要求14所述的计算设备,所述处理设备还用于:
确定与第二物理设备关联的第二多个设备模板,其中,所述第二多个设备模板包括与所述第一多个设备模板的至少一个共用设备模板;
从所述第二多个设备模板创建第二虚拟设备;
在所述第二物理设备与所述第二虚拟设备之间建立新连接;以及
使用所述第二虚拟设备控制所述第二物理设备。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/525,098 US9396015B2 (en) | 2014-10-27 | 2014-10-27 | Flexible device templates for connected consumer devices |
US14/525,098 | 2014-10-27 | ||
PCT/US2015/047285 WO2016069099A1 (en) | 2014-10-27 | 2015-08-27 | Flexible device templates for connected consumer devices |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107003836A CN107003836A (zh) | 2017-08-01 |
CN107003836B true CN107003836B (zh) | 2021-07-27 |
Family
ID=55792068
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580056786.1A Expired - Fee Related CN107003836B (zh) | 2014-10-27 | 2015-08-27 | 用于所连接的消费者设备的灵活设备模板 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9396015B2 (zh) |
EP (1) | EP3213186A4 (zh) |
CN (1) | CN107003836B (zh) |
WO (1) | WO2016069099A1 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170134500A1 (en) * | 2015-11-09 | 2017-05-11 | Admobilize Llc. | System and method for creating operating systems to network physical objects or things |
CN109154802A (zh) * | 2016-03-31 | 2019-01-04 | 江森自控科技公司 | 分布式建筑物管理***中的hvac装置注册 |
US20180129191A1 (en) * | 2016-11-04 | 2018-05-10 | Rockwell Automation Technologies, Inc. | Industrial automation system machine analytics for a connected enterprise |
US11294867B2 (en) | 2017-03-15 | 2022-04-05 | Carrier Corporation | Internet of things architecture with a cloud-based integration platform |
US10686865B2 (en) * | 2017-04-10 | 2020-06-16 | Ayla Networks, Inc. | Third-party application control of devices in an IoT platform |
US10694455B2 (en) * | 2017-06-29 | 2020-06-23 | Ayla Networks, Inc. | Connectivity state optimization to devices in a mobile environment |
US11176183B2 (en) | 2018-03-05 | 2021-11-16 | Honeywell International Inc. | System and method to configure a flow algorithm automatically by using a primary element data sheet in multivariable smart line transmitters |
US11201921B2 (en) | 2019-05-13 | 2021-12-14 | Cisco Technology, Inc. | Virtual devices in internet of things (IoT) nodes |
WO2021012234A1 (zh) * | 2019-07-24 | 2021-01-28 | Oppo广东移动通信有限公司 | 一种影子设备的生成方法、设备及存储介质 |
CN113193979B (zh) * | 2021-03-25 | 2023-05-09 | 深圳市广和通无线股份有限公司 | 实现物联网模块虚拟外设共享的方法、装置、计算机设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6052750A (en) * | 1998-01-06 | 2000-04-18 | Sony Corporation Of Japan | Home audio/video network for generating default control parameters for devices coupled to the network, and replacing updated control parameters therewith |
WO2014145801A2 (en) * | 2013-03-15 | 2014-09-18 | Fisher-Rosemount Systems, Inc. | Data modeling studio |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5117491A (en) * | 1989-03-31 | 1992-05-26 | Bull Hn Information Systems Inc. | Ring reduction logic using parallel determination of ring numbers in a plurality of functional units and forced ring numbers by instruction decoding |
US6640255B1 (en) * | 1995-03-31 | 2003-10-28 | Sun Microsystems, Inc. | Method and apparatus for generation and installation of distributed objects on a distributed object system |
JP2000349793A (ja) * | 1999-06-04 | 2000-12-15 | Toshiba Corp | ネットワーク装置及びネットワーク方法 |
US20010047431A1 (en) * | 2000-02-09 | 2001-11-29 | Eytchison Edward B. | HAVi-VHN bridge solution |
US20040221123A1 (en) * | 2003-05-02 | 2004-11-04 | Lam Wai Tung | Virtual data switch and method of use |
US9137251B2 (en) * | 2005-03-16 | 2015-09-15 | Fortinet, Inc. | Inheritance based network management |
US20080059944A1 (en) * | 2006-08-15 | 2008-03-06 | Zeligsoft Inc. | Deployment-aware software code generation |
CN100568202C (zh) * | 2007-01-23 | 2009-12-09 | 福建升腾资讯有限公司 | 计算机***设备共享服务器控制方法 |
CN101188684B (zh) * | 2007-11-19 | 2010-08-11 | 新奥特(北京)视频技术有限公司 | 一种图形制播中图形模板的继承设备 |
US8250573B2 (en) * | 2007-12-27 | 2012-08-21 | Intel Corporation | Audio subsystem sharing in a virtualized environment |
JP5325981B2 (ja) * | 2009-05-26 | 2013-10-23 | 株式会社日立製作所 | 管理サーバ及び管理システム |
US20110102443A1 (en) | 2009-11-04 | 2011-05-05 | Microsoft Corporation | Virtualized GPU in a Virtual Machine Environment |
US8907981B2 (en) | 2009-11-05 | 2014-12-09 | International Business Machines Corporation | Method and system for dynamic composing and creating 3D virtual devices |
CN101938523A (zh) * | 2010-09-16 | 2011-01-05 | 华中科技大学 | 一种iSCSI与FCP协议融合方法及其在容灾中的应用 |
US9015270B2 (en) * | 2010-10-08 | 2015-04-21 | Time Warner Cable Enterprises Llc | Apparatus and methods for enforcing content protection rules during data transfer between devices |
JP2012104063A (ja) * | 2010-11-12 | 2012-05-31 | Fuji Xerox Co Ltd | サービス処理装置、サービス処理システム及びプログラム |
US20130031225A1 (en) * | 2011-07-27 | 2013-01-31 | Amazon Technologies, Inc. | Remotely preconfiguring a computing device |
US9098312B2 (en) * | 2011-11-16 | 2015-08-04 | Ptc Inc. | Methods for dynamically generating an application interface for a modeled entity and devices thereof |
US9276958B2 (en) * | 2013-02-04 | 2016-03-01 | Ricoh Company, Ltd. | Customizing security role in device management system, apparatus and method |
KR20140133357A (ko) * | 2013-05-10 | 2014-11-19 | 삼성전자주식회사 | 디스플레이 장치 및 그 ui 화면 제공 방법 |
US9118670B2 (en) * | 2013-08-30 | 2015-08-25 | U-Me Holdings LLC | Making a user's data, settings, and licensed content available in the cloud |
US20150095880A1 (en) * | 2013-09-27 | 2015-04-02 | Salesforce.Com, Inc. | Facilitating software development tools on mobile computing devices in an on-demand services environment |
US20150268936A1 (en) * | 2014-03-21 | 2015-09-24 | Ptc Inc. | System and method for testing computing devices in a heterogeneous environment |
WO2015153367A2 (en) * | 2014-03-31 | 2015-10-08 | Basic6, Inc. | An open, extensible, scalable, method and system which delivers status monitoring and software upgrades to heterogeneous devices via a common user interface |
US20150365480A1 (en) * | 2014-06-16 | 2015-12-17 | Spidermonkey, LLC | Methods and systems for communicating with electronic devices |
US20150381737A1 (en) * | 2014-06-30 | 2015-12-31 | Davra Networks Limited | Gateway device and a gateway system for an internet-of-things environment |
-
2014
- 2014-10-27 US US14/525,098 patent/US9396015B2/en active Active
-
2015
- 2015-08-27 WO PCT/US2015/047285 patent/WO2016069099A1/en active Application Filing
- 2015-08-27 CN CN201580056786.1A patent/CN107003836B/zh not_active Expired - Fee Related
- 2015-08-27 EP EP15854348.8A patent/EP3213186A4/en not_active Withdrawn
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6052750A (en) * | 1998-01-06 | 2000-04-18 | Sony Corporation Of Japan | Home audio/video network for generating default control parameters for devices coupled to the network, and replacing updated control parameters therewith |
WO2014145801A2 (en) * | 2013-03-15 | 2014-09-18 | Fisher-Rosemount Systems, Inc. | Data modeling studio |
Also Published As
Publication number | Publication date |
---|---|
EP3213186A1 (en) | 2017-09-06 |
WO2016069099A1 (en) | 2016-05-06 |
US20160117184A1 (en) | 2016-04-28 |
US9396015B2 (en) | 2016-07-19 |
CN107003836A (zh) | 2017-08-01 |
WO2016069099A8 (en) | 2017-05-26 |
EP3213186A4 (en) | 2018-09-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107003836B (zh) | 用于所连接的消费者设备的灵活设备模板 | |
CN108431765B (zh) | 设备应用的生成 | |
US10484512B2 (en) | Management of multi-radio gateway device using virtual gateway device | |
US10404832B2 (en) | Management of gateway device using virtual gateway device | |
CN108696575B (zh) | 物联网平台中用于生成适配器模板的方法和*** | |
US20170063611A1 (en) | User Configuration Mechanism for Internet-of-Things (IOT) | |
EP3394743B1 (en) | Method and apparatus for creating and managing controller based remote solutions | |
US20170374131A1 (en) | Managing and maintaining a domain | |
US20180159958A1 (en) | Automatic provisioning of devices | |
US20180160252A1 (en) | Pre-provisioning of a device | |
CN111556158B (zh) | 物联网平台的接入方法、接入装置、接入设备及存储介质 | |
US10216174B2 (en) | System and method for universal control of electronic devices | |
CN113839992A (zh) | 设备控制方法及装置 | |
CN107851009B (zh) | 用于修改基于控制器的设备的代码的行为的方法和装置 | |
CN107077326B (zh) | 用于所连接的消费者设备的注册框架 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200612 Address after: 1501, building B, innovation building, 198 Daxin Road, majialong community, Nantou street, Nanshan District, Shenzhen City, Guangdong Province Applicant after: ELA IOT network (Shenzhen) Co.,Ltd. Address before: California, USA Applicant before: AYLA NETWORKS Inc. |
|
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20210727 |