CN107003924A - 用于管理已连接消费者设备的灵活规则引擎 - Google Patents
用于管理已连接消费者设备的灵活规则引擎 Download PDFInfo
- Publication number
- CN107003924A CN107003924A CN201580068346.8A CN201580068346A CN107003924A CN 107003924 A CN107003924 A CN 107003924A CN 201580068346 A CN201580068346 A CN 201580068346A CN 107003924 A CN107003924 A CN 107003924A
- Authority
- CN
- China
- Prior art keywords
- rule
- networked devices
- event
- user account
- criterion
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/02—Standardisation; Integration
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/20—Network architectures or network communication protocols for network security for managing network security; network security policies in general
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
- H04L67/306—User profiles
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/90—Services for handling of emergency or hazardous situations, e.g. earthquake and tsunami warning systems [ETWS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0604—Management of faults, events, alarms or notifications using filtering, e.g. reduction of information by using priority, element types, position or time
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/50—Network service management, e.g. ensuring proper service fulfilment according to agreements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/70—Services for machine-to-machine communication [M2M] or machine type communication [MTC]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Business, Economics & Management (AREA)
- Public Health (AREA)
- Environmental & Geological Engineering (AREA)
- Emergency Management (AREA)
- Health & Medical Sciences (AREA)
- Telephonic Communication Services (AREA)
- Computer And Data Communications (AREA)
Abstract
一种执行规则引擎的处理设备,其接收关于第一联网设备上的第一事件的通知。所述处理设备标识与第一用户账户相关联的第一规则,其中所述第一用户账户进一步与所述第一联网设备相关联,并且其中所述第一联网设备上的所述第一事件是针对所述第一规则的输入。所述处理设备确定所述第一事件满足所述第一规则的第一准则并且为也与所述第一用户账户相关联的第二联网设备生成第一命令。所述处理设备然后将所述第一命令发送到代表所述第一用户账户的所述第二联网设备,其中所述第一命令使所述第二联网设备执行操作。
Description
背景技术
很多现代电器、消费者设备以及其它设备包括被配置为执行一个或多个专用功能的嵌入式系统。然而,这些设备的大多数嵌入式系统不包括联网能力、基于角色的访问控制能力、远程接口能力、远程控制能力或相关能力。将这样的功能设计到嵌入式系统中、设计用于访问这些功能的应用编程接口(API)、设计能够经由这种添加的功能而与嵌入式系统进行通信及对其进行控制的web服务、以及设计用于利用该功能的应用,可能会消耗设备制造商的大量资源。此外,传统的嵌入式系统不会响应于满足规则引擎中的一个或多个规则的其它嵌入式系统上的事件、或者响应于满足嵌入式设备的消费者或原始设备制造商(OEM)所定义的一个或多个规则的外部事件而执行操作。
附图说明
现在参考示出本申请的示例实施方式的附图,并且其中:
图1是描绘示例网络架构的框图;
图2A是规则引擎的示例实施方式的框图;
图2B是规则创建器的示例实施方式的框图;
图3是应用一个或多个规则的规则引擎的输入馈送和输出馈送的框图;
图4是响应于第一联网设备上的事件而触发在第二联网设备上的操作的示例方法的流程图;
图5是响应于其它服务和/或联网设备上的事件而触发对服务和/或联网设备的一个或多个操作的示例方法的流程图;
图6是对规则进行速率极值和/或循环检测的示例方法的流程图;
图7A是通过规则引擎生成执行规则的示例方法的流程图;
图7B是通过规则引擎生成执行规则的另一种示例方法752的流程图;
图8是具有可远程访问的嵌入式系统的示例设备的框图;和
图9示出了计算设备的一个实施方式的框图。
具体实施方式
物联网(IoT)演进已经使得消费者和原始设备制造商(OEM)以前所未有的方式与其连接的设备进行交互。物联网演进开放了消费者从世界任何地方远程控制和监控其设备的可能性。除了用户发起的操作之外,用户还可能希望对其设备进行编程以响应于事件执行操作。这些操作可以用于对紧急事件做出反应,以基于当前状况来实现设备的高效运行,向用户提供关键事件的通知等。这里描述的方法和技术使消费者和原始设备制造商能够自定义他们的设备对什么事件作出反应以及他们的设备对这些事件的反应方式。
实施方式涉及一种联网设备平台(也称为物联网(IoT)云平台或简称为IoT平台),其提供灵活的规则引擎,该规则引擎将规则应用于任何输入以生成发送到输出的消息。可以从一个或多个联网设备和/或服务接收输入,并且可以将输出发送到一个或多个其它联网设备和/或服务。在一个实施方式中,将规则引擎的每个输入和输出建模为馈送。馈送可以是触发操作的输入馈送或者可以是可以为操作本身的输出馈送。松散联接的馈送可以通过用户定义的规则连接在一起。IoT平台可以随时通过一组独特的输入、准则和/或输出生成新的规则。因此,实施方式提供了使用规则引擎来控制联网设备(例如嵌入式系统)的灵活框架。
在一个实施方式中,用户账户可以与规则、用户的第一联网设备和用户的第二联网设备相关联。执行规则引擎的处理设备接收第一联网设备上的事件通知。处理设备标识规则,其中第一联网设备上的事件是针对规则的输入。处理设备确定事件满足规则的准则。然后,处理设备响应于确定事件满足准则来确定要由第二联网设备执行的操作。处理设备对第二联网设备生成命令,其中,命令使第二联网设备执行操作。处理设备然后将命令发送到第二联网设备。因此,用户可以配置将使第二联网设备响应于第一联网设备上的事件而执行操作的规则。无论用户是登录到提供规则引擎的任何设备还是服务,都可以自动检测和执行事件和操作。
现参考附图,图1是描述示例网络架构100的框图,网络架构100包括远程可访问嵌入式系统和与嵌入式系统进行交互的计算设备。网络架构100包括连接到局域网(LAN)165的多个设备135A-135C。因此,设备135A-C可以称为联网设备。
设备135A-135C是具有嵌入式系统150A-150C的设备,并且可以包括例如电子电器(例如冰箱、烤箱、洗衣机、干燥机、洗碗机、恒温器、报警器、空调器、电视、无线电、接收机、放大器等)。设备135A-135C可以还包括消费者设备(例如数码手表、音乐播放器、游戏控制台、数码相机、打印机等)。设备135A-135C的其它示例包括固定设备(例如HVAC系统、交通灯、工厂控制器、标牌、电子广告牌、喷洒器系统和灌溉控制系统以及医疗设备)。嵌入式系统150A-150C可以称为联网设备。设备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)或其它无线电话技术进行通信。以下参考图8更详细地描述嵌入式系统的一个示例。
再次参考图1,LAN 165可以包括路由器、交换机、桥接器或使得能够在连接到LAN165的多个设备之间进行通信的其它网络设备(未示出)。网络设备可以使用例如以太网端口、通用串行总线(USB)端口和/或端口提供与LAN的有线连接。网络设备可以使用例如Wi-Fi收发机另外提供与LAN的无线连接。
一些嵌入式系统150A-150C可能不支持网络设备所支持的任何通信类型。例如,设备135A可以支持Zigbee,并且设备135B可以支持蓝牙。为了使得这些设备能够连接到LAN165,LAN 165可以包括经由网络设备所支持的连接类型之一(例如,经由以太网或Wi-Fi)连接到网络设备的网关设备(未示出)。网关设备可以另外支持其它通信协议(例如Zigbee、PLC和/或蓝牙),并且可以在所支持的各通信协议之间进行转译。相应地,一些设备可以通过网关设备连接到LAN 165。
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的会话。经由与嵌入式系统150A-150C的会话,WAN可访问服务130可以将命令发放到嵌入式系统,和/或从嵌入式系统接收状态更新。命令可以是用于改变可由嵌入式系统控制的设备的一个或多个参数的状态的命令。例如,如果嵌入式系统嵌入在加热器或恒温器中,则命令可以包括用于增加或降低温度的命令。在另一示例中,如果嵌入式系统嵌入在家庭自动化系统中,则命令可以包括用于打开或关闭灯的命令。
从嵌入式系统150A-150C接收到的状态更新可以标识包括嵌入式系统的设备135A-135C的一些或所有可检测参数的值或状态。状态更新也可以包括故障信息、统计设备使用信息、跟踪数据和/或其它信息。这些值、状态和/或其它信息可以基于与设备的直接用户交互而改变。这些值、状态和/或其它信息也可以响应于由WAN可访问服务130和/或计算设备105A-105C发送给嵌入式系统150A-150C的命令而改变。此外,嵌入式系统150A-150C的值、状态和其他信息可以基于嵌入式系统的环境条件而改变。通过保持或周期性地建立与嵌入式系统150A-150C的会话,WAN可访问服务130可以保持关于设备135A-135C的最新信息。
服务器计算设备125B包括一个或多个第三方服务162。第三方服务162可以是由除了包括WAN可访问服务130的IoT平台的提供商之外的实体提供的服务。如图所示,服务器计算设备125B可以直接连接或通过WAN 170连接到服务器计算设备125A。第三方服务的示例包括天气服务(例如提供实时天气馈送)、时间服务(例如原子钟)、丰富网站摘要(RSS,也称为真正简易聚合)馈送、地区的地震数据(例如可用于在发生大地震的情况下关闭公用事业)、跟踪客户付款的OEM上的服务(例如可用于如果未收到付款则关闭设备控制),等等。对于涉及外部服务的操作,用户可以输入其凭据或通过授权过程来提供代表用户对外部服务执行操作的授权。
在一个实施方式中,WAN可访问服务130包括规则引擎128和规则创建器126。规则引擎128应用一个或多个规则来确定操作并生成消息和/或命令以基于接收到的事件来实施所确定的操作。规则引擎128可以随时从设备135A-C、第三方服务162或其它WAN可访问服务130中的任一个接收事件的通知。规则引擎128包括多个输入馈送,其中每个输入馈送与源(例如第三方服务162、嵌入式系统150A-C、WAN可访问服务130等)相关联。这些输入馈送中的每一个可以是可以满足规则中指定的条件的事件源。
规则引擎128标识检测到的事件是输入的一个规则或多个规则。然后,规则引擎128确定事件是否满足触发其它设备135A-C、WAN可访问服务130和/或第三方服务162上的一个或多个操作的准则。响应于确定接收到的事件满足规则的准则,规则引擎128生成消息并将其发送到与规则的输出相关联的设备135A-135C、WAN可访问服务130或第三方服务162。
在一个示例中,设备135A是由嵌入式系统150A控制的喷洒系统,并且第三方服务162是天气馈送。规则引擎128从第三方服务162接收指示有90%的下雨几率的天气报告。规则引擎128包括这样的规则:使规则引擎响应于大于50%的下雨可能性的天气报告来取消喷洒系统(设备135A)的预定激活。因此,规则引擎128将天气报告作为输入应用于规则,并且确定喷洒系统的预定激活应该被取消。规则引擎128生成将使嵌入式系统150A取消喷洒系统的预定激活的命令,并将命令发送到嵌入式系统150A。
在另一示例中,设备135A是由嵌入式系统150A控制的洗衣机,第三方服务162包括能量成本馈送。规则引擎128从能量成本馈送接收指示当前能量成本的报告。规则引擎128进一步从智能水表接收指示当天已使用水量的报告。规则引擎128包括这样的规则:当能量成本高于成本阈值并且当一天中已使用超过阈值量的水时,使规则引擎阻止洗涤循环启动。因此,规则引擎128将能量成本馈送和来自水表的信息作为输入应用于规则,并且当能量成本高于成本阈值和/或水的使用高于水使用阈值时,确定洗涤循环不能运行。规则引擎128生成将使嵌入式系统150A禁用洗衣机的洗涤循环的命令,并将命令发送到嵌入式系统150A。
在另一示例中,设备135A是房屋中的有因特网功能的门锁,并且设备135B-C是房屋中的有因特网功能的灯。规则引擎128包括这样的规则:将使灯能够响应于门锁被解锁而打开。响应于用户解锁门,嵌入式系统150A向规则引擎128发送已经发生门解锁事件的通知。规则引擎128将门解锁事件应用于规则,并确定灯将被打开。规则引擎128然后生成打开灯的命令,并将这些命令发送到嵌入式系统150B-C。然后,嵌入式系统150B-C应用命令并打开灯。因此,响应于在一个联网设备(例如嵌入式系统150A)上发生的事件,在另一个联网设备(例如嵌入式系统150B)上自动执行操作。存在无数的其它用例,其规则可以由规则引擎128生成和应用。下面参考图2A更详细地讨论规则引擎128。
再次参考图1,规则创建器126生成由规则引擎128应用的新规则。规则可以由用户生成而不执行任何编程。在一个实施方式中,规则创建器216提供用户界面(例如图形用户界面),其使得用户能够容易地设置应用于其联网设备的新规则。下面参考图2B更详细地讨论规则创建器126。
再次参考图1,计算设备105可以包括便携式设备(例如电子书阅读器、便携式数字助理、移动电话、膝上型计算机、便携式媒体播放器、平板计算机、相机、摄像机、上网本、笔记本等)。计算设备105可以还包括传统固定设备(例如台式计算机、游戏控制台、数字视频盘(DVD)播放器、媒体中心等)。计算设备105可以连接到WAN 170和/或LAN 165。
计算设备105可以包括远程控制应用(或多个远程控制应用)115,其可以接收关于设备135A-135C的信息并且控制该设备135A-135C。远程控制应用115被配置为:经由设备的嵌入式系统150A-150C与设备135A-135C中的一个或多个进行对接和/或控制设备135A-135C中的一个或多个。远程控制应用105A-105C可以被编程为运行于各种操作系统(例如,举例为操作系统、操作系统、操作系统、操作系统和操作系统)上。远程控制应用105也可以被配置为固件,硬件,或软件、固件和/或硬件的某种组合。远程控制应用105可以包括图形用户接口(GUI),其使得用户能够通过直观且用户友好的方式与设备135A-135C进行交互并且控制设备135A-135C。用户可以与GUI进行交互,以使得远程控制应用生成针对GUI中所表示的设备的通知、命令、性质更新和其它消息。
在一个实施方式中,远程控制应用115与规则创建器126对接以生成新规则和/或修改现有规则。规则创建器126可以提供远程控制应用115用于生成和/或修改规则的应用编程接口(API)。替选地,用户可以访问规则创建器126以通过可从web浏览器访问的web界面来生成和/或修改规则。
图2A是规则引擎205的示例性实施方式的框图,其在一个实施方式中对应于图1的规则引擎128。规则引擎205实行规则的执行路径。在执行路径中,针对规则引擎205内用户指定的条件来评估来自输入馈送的数据,如果为真,则通过相应的输出馈送来采取用户指定的操作。规则引擎205可以包括安全上下文确定器220、规则确定器215和规则应用器225。或者,安全上下文确定器220、规则确定器215和/或规则应用器225中的一个或多个的功能可以组合成单个模块或分为多个子模块。
规则引擎205连接到存储许多规则235A-235N的数据存储器210。如图所示,规则235A-235N中的每一个可以与生成规则的用户的特定用户账户230A-235N相关联。每个用户账户230A-235N可以具有特定的安全上下文,并且可以与该用户账户的用户可访问的一个或多个设备相关联。某些用户账户可能是OEM的账户。这些用户账户可以访问由这些OEM制造的所有设备。其它用户账户可以是终端用户(例如设备的所有者)的账户。这样的用户账户可以访问用户拥有的所有设备以及其它用户账户共享访问的其它设备。
规则引擎205接收一个或多个事件240的通知。这些事件240可以是一个或多个规则的输入。规则确定器215在数据存储器210中搜索所接收的一个事件或多个事件是输入的规则。响应于找到这样的规则,规则确定器215调用规则应用器225以应用所标识的规则。
规则应用器225将一个事件或多个事件240应用于标识的规则235A-235N。每个规则包括可以由事件240满足的一个或多个准则。如果满足规则的一个准则或一组准则,则规则应用器225确定触发的操作。不同的事件可以满足不同的准则,这可能导致执行不同的操作。规则可以具有基于来自单个源的单个事件的简单准则,或者可以具有基于来自一个或多个源的多个事件的复杂准则。
响应于规则的准则得到满足,安全上下文确定器220检查规则的安全上下文。每个规则具有生成该规则的用户账户的相同的安全上下文。当用户登录到用户账户时,账户管理器模块(未示出)可以执行认证和授权操作。响应于成功的认证和/或授权,可以生成将用户账户与特定安全上下文相关联的令牌。该令牌可能是持久的,并且当用户与用户账户的会话终止时可能不会被删除。令牌可以被提供到设备、服务等,以示出规则已访问特定资源(例如访问联网设备)。因此,当规则引擎代表用户执行规则时,用户不需要登录。操作可以由代表用户的规则引擎和/或设备执行,就像用户执行了这些操作一样。
每个用户账户230A-235N对一个或多个联网设备具有不同的访问级别。用户账户230A-235N对特定设备的访问级别可能随时间而改变。例如,设备的所有者可以与其它用户对设备的访问共享有限时间。在共享设备访问的同时,该其它用户可能会生成将导致设备状态在特定条件下改变的规则。然而,一旦所有者将与其它用户的设备共享终止,该其它用户就不再有权限改变该设备的设置。由于其它用户生成的规则在该用户的用户账户的安全上下文中,所以规则在共享终止后不再具有访问设备的权限,并且将失败。因此,安全上下文确定器220确定该规则是否具有在应用规则时执行规则所指示的操作的适当权限。
如果规则具有适当的权限,则规则应用器225生成将导致执行所确定的操作的命令或消息。对于一些操作,规则应用器225生成通知消息并将它们发送到一个或多个目标。例如,规则应用器225可以生成简单消息服务(SMS)消息、多媒体消息服务(MMS)或其它文本消息。规则应用器225还可以发送电子邮件消息或呼叫电话号码并且留下自动消息。规则应用器225可以另外生成将导致特定联网设备执行特定操作的命令。此外,规则应用器225可以生成将导致web服务执行操作的命令。操作可以在单个设备或一组设备上执行。操作可以是生成报告,例如详细说明本月用水量或能源消耗的报告。操作的其它示例包括改变设备的设置,启用或禁用设备或功能等。
安全上下文确定器220还可以创建和保持安全审核日志,其捕获由规则处理引擎代表用户账户所采取的所有操作。安全审核日志中的每个条目可以标识与操作相关联的用户上下文,以及该操作是基于直接用户交互还是基于在用户上下文中生成的规则应用来执行。
图3示出了根据一个示例实施方式的规则引擎305,其从多个输入馈送381接收事件通知,将事件通知应用于一个或多个规则383,并且将消息发送到多个输出馈送391。如图所示,输入馈送381可以包括天气服务284、一个或多个设备386、一个或多个时间表388和/或一个或多个第三方服务390。时间表388可以包括设备的时间表(例如示出计划在未来和/或过去何时发生特定操作)和/或用户时间表(例如,指示工作时间表,活动模式,例如通常用户何时回家、何时睡觉、何时上班、何时看电视等)和计划旅行时间表等。输出馈送391可以包括一个或多个设备393,其可以与设备386相同或不同。输出馈送391还包括电子邮件394、文本消息396(例如SMS和/或MMS消息)、第三方服务398等。
如图所示,来自天气服务384的事件、来自设备286的事件、来自时间表388的事件和来自第三方服务390的事件可以一起满足规则383的准则。规则383可以导致生成命令并发送到设备393。此外,设备386上的事件可以满足导致生成电子邮件消息394并发送给用户并且生成文本消息396并发送给用户的另一规则383。该事件还可能导致向第三方服务398发出命令。例如,如果设备是警报并且事件是触发警报,则电子邮件和文本消息可以被发送到用户的地址通知他已经触发了警报。此外,第三方服务398可以是安全公司,并且将安全人员派遣到与警报相关联的属性的命令可以被发送到第三方服务398。
现在参考图2B,根据本发明的一个实施方式示出了规则创建器250的框图。规则创建器250提供可用于创建、读取、更新和删除输入馈送、输出馈送和规则的管理路径。在管理路径中,制定规则,然后在规则引擎中保留。规则创建器250可以包括安全上下文确定器255、用户界面260、设备确定器265和应用编程接口(API)280。替选地,安全上下文确定器255、用户界面260、设备确定器265和/或API 280中的一个或多个的功能可以组合成单个模块或分成多个子模块。
用户界面260可以是可以提供下拉窗口、菜单、显示栏、图标以及规则、事件、输入、输出、操作等的其它图形表示的图形用户界面。替选地,用户界面260可以是命令行用户界面。响应于用户请求生成新规则,用户界面260可呈现用于规则创建和规则修改的多个选项。
当接收到规则创建请求时,安全上下文确定器255确定接收到请求的用户账户的安全上下文。该安全上下文将与用于规则生命的规则相关联。
设备确定器265基于安全上下文标识用户账户具有访问权限的设备和对这些设备的访问级别。用户界面260可以显示这些可用设备。
用户界面260可以提供用于选择规则的输入的选项。用户界面260可以提供可用作规则的输入的可用设备的下拉菜单或其它列表。用户界面260还可以标识可用作该规则的输入的服务(例如WAN可访问服务、第三方服务、时间表等)。一些设备和/或服务可以具有可用作输入的多个参数、设置、特征等。如果选择了这样的设备或服务,则显示所选设备或服务的可用参数、设置、特征等(例如在下拉菜单中)。然后,用户可以从将作为该规则的输入的所选设备或服务中选择特定的一个事件或多个事件。用户可以选择任何数量的将作为规则的输入的事件。这些事件可以来自单个设备或服务或来自多个设备和/或服务。
一旦选择了一个或多个输入事件,用户可以选择要由事件来满足的准则。可以对每个输入事件选择单独的准则。可用于事件的准则可以基于所选的事件。规则创建器250可以包括数据库或其它数据结构,其标识可应用于每个输入事件的可能状态、阈值或其它准则。因此,用户界面260可向用户呈现用于所选择的输入事件的准则选项的列表。
用户界面260可另外提供可以是用于该规则的输出的设备和服务的列表(例如下拉列表)。示出的输出设备的列表可以不同于输入设备的列表。这可能是由于具有读取权限的安全上下文,而不是对某些设备的写入权限。例如,如果安全上下文具有对设备的读取权限,则该设备可以作为输入事件的输入馈送用于规则。但是,如果安全上下文没有对设备的写入权限,则在某些情况下,该设备可能不会用作输出馈送。
在用户选择用于输出的一个或多个设备和/或服务之后,用户可以选择对这些输出执行的操作。操作可以包括发送通知或发送执行操作的命令。操作可以是在规则的准则得到满足后不久触发的一次性操作。操作也可以是预定操作,其计划将在将来的日期和/或时间执行一次或在将来的日期和/或时间重复地执行的延迟操作。例如预定操作可能会导致创建时间表,从而导致每天在下午1点执行特定操作。响应于用户选择该设备或服务作为用于规则的输出馈送,可以向用户呈现可以针对所选择的输出设备或服务执行的可用操作的列表。
应用编程接口(API)280可以与客户端应用(例如在客户端设备上运行的远程控制应用)进行对接,以创建和/或修改规则。客户端应用可以提供与用户界面260相同或相似的用户界面。客户端应用的用户界面可以与API 280进行通信,以使用本文参考用户界面260描述的相同技术生成和修改规则。
在一个实施方式中,规则创建器250包括可以测试由用户创建的一个或多个规则的规则测试器282。规则测试器282可以模拟不同的情况并且响应于模拟情况来模拟规则的执行。规则测试器282可以另外测试多个不同规则的交互。这种多规则的测试可能会暴露潜在问题,例如规则执行循环。作为这种测试的结果,可以检测和防止规则执行循环。规则执行循环是其中第一规则触发操作的条件,其导致第二规则触发操作,这导致第一规则触发操作,等等。测试多个规则也可能会暴露多个规则之间的意外或不需要的交互。
一旦生成了规则,规则创建器250将规则存储在数据存储器210中。该规则存储在请求创建规则的特定用户账户的安全上下文中。例如,第一用户账户230A包括第一安全上下文和第一组规则235A,第二用户账户230B包括第二安全上下文和第二组规则235B,并且第n个用户账户230N包括第n个安全上下文和第n组规则235N。
在一个实施方式中,规则创建器250包括自动规则生成器285。自动规则生成器285可将机器学习算法(例如Kohonen映射、支持向量机(SVM)、k-最近邻分类器等)应用于跨设备和服务的事件和操作的日志。自动规则生成器可以在不同的设备上学习事件和相应的操作的模式。然后,自动规则生成器285可以基于观察到的行为来创建规则。例如,自动规则生成器285可以在工作日晚上检测用户从工作回家之后在打开前门之后不久打开电视机和无线电的模式。因此,自动规则生成器可以在没有用户输入的情况下创建规则,如果是平日,并且在5PM之后,并且检测到门打开事件,则将打开电视和无线电。可以为特定用户账户创建自动创建的规则,并且可能具有该用户账户的安全上下文。
规则创建器250和规则引擎205可以使用多租户模型来管理用户账户。因此,每个用户账户(例如每个OEM或每个设备所有者)可以仅访问他们具有访问权限的那些设备,并且每个用户账户可以仅访问他们创建的那些规则。因此,与每个用户账户相关联的规则可以独立于其它用户账户的规则。对于每个用户账户230A-N,可能出现规则创建器250和规则引擎205仅服务于该用户账户。
图4-7B是示出根据本发明的实施方式的创建和应用用于控制和/或响应联网设备上的事件的规则的各种方法的流程图。这些方法可以由可以包括硬件(例如电路、专用逻辑、可编程逻辑、微代码等)、软件(例如在处理设备上运行以执行硬件仿真的指令)或其组合的处理逻辑来执行。在一个实施方式中,方法的至少一些操作通过服务器计算设备(例如图1的服务器计算设备125)来执行。
图4是响应于第一联网设备上的事件触发在第二联网设备上的操作的示例方法400的流程图。在方法400的框405处,处理逻辑接收关于第一联网设备上发生的事件的通知。该事件可以是设置的变化(例如用户已经改变了恒温器的温度设定点、灯已经被打开、已经在闹钟上设置警报、已经在喷洒控制系统上设置浇水时间表等)、测量参数的变化(例如由恒温器测量的当前温度、由运动传感器进行的运动检测、由光传感器进行的光检测等)或与联网设备相关联的其它事件。
在框410处,处理逻辑标识一规则,所述事件对该规则而言是输入。该规则可以设置成使得第一联网设备是针对该规则的输入馈送。当事件由第一联网设备报告时,处理逻辑将这些事件与规则的准则(或多个准则)进行比较。在框415处,处理逻辑确定第一联网设备上的事件是否满足规则的准则。如果事件满足准则,则该方法继续到框420。否则该方法结束。
在框420处,处理逻辑根据规则确定规则执行的操作。该操作可以是由第二联网设备执行的操作。可以执行任何类型的操作,例如打开或关闭第二联网设备、改变第二联网设备的设置等。此外,该操作可以是立即操作、也可以是预定的未来操作。
在框425处,处理逻辑确定规则的安全上下文。规则的安全上下文可能与生成规则的用户的安全上下文相同。因此,处理逻辑可以确定生成规则的用户账户的安全上下文。可以通过标识与规则相关联的令牌并查询访问控制器模块来确定哪些权限可用于规则来确定安全上下文。
在框430处,处理逻辑确定安全上下文是否具有在第二联网设备上执行所确定的操作的权限。例如,处理逻辑可以确定用户账户的安全上下文是否具有对第二联网设备的写入权限。如果安全上下文具有执行操作的权限,则该方法继续到框435。否则,该方法结束。
在框435处,处理逻辑生成使第二联网设备执行所确定的操作的命令。在框440处,处理逻辑将命令发送到第二联网设备。然后,第二联网设备可以执行命令以执行该操作。即使用户可能没有对生成规则的用户账户的活动会话,第二联网设备也可以执行操作。
图5是响应于其它服务和/或联网设备上的事件而触发服务和/或联网设备上的一个或多个操作的示例性方法500的流程图。在方法500的框505处,处理逻辑接收已在联网设备和/或服务上发生的积极和/或消极事件的通知。该服务可以是第三方服务或控制处理逻辑的实体的服务(例如IoT平台的WAN可访问服务)。积极事件是已经发生的事件,例如开关的跳闸、到达设定点的变量等等。消极事件是没有发生的事件。例如,消极事件的通知可以是恒温器在一段时间内未能达到设定点的通知,或者喷洒系统在一段时间内没有打开的通知。
在框510处,处理逻辑标识一个或多个事件是输入的规则。在框515处,处理逻辑确定事件是否满足所标识的规则的准则。如果事件(或多个事件)满足准则,则该方法继续到框520。否则该方法结束。
在框520处,处理逻辑根据规则确定执行的一个或多个操作。在框525处,处理逻辑确定规则的安全上下文,并确定安全上下文包括执行一个或多个所确定的操作的权限。在框530处,处理逻辑生成使另外的联网设备和/或服务执行操作的命令。在框535处,处理逻辑将命令发送到另外的联网设备和/或服务。这些设备和/或服务然后可以执行命令来执行所确定的操作。
在框540处,处理逻辑生成已经执行的事件、命令和操作的日志。日志也可以指示被触发以导致执行操作的规则。日志可以标识由规则触发的命令和操作的安全上下文。安全上下文可以是生成被触发的规则的用户的安全上下文。
在框545处,处理逻辑通知规则满足的用户账户的用户。向用户的通知可以是发送到用户的电子邮件地址的电子邮件(email)消息。向用户的通知也可以是发送到用户的电话号码的SMS或MMS消息。该通知还可以是对用户的电话号码的自动电话呼叫、发布到用户的社交网络账户的帖子或其它类型的通知。
图6是执行用于规则的速率极值和/或循环检测的示例方法600的流程图。当生成规则以测试新规则和现有规则之间的交互,并且主动应用将控制规则在规则执行循环条件下如何行为的规则时,可以执行方法600。方法600也可以在执行规则期间(例如在已部署规则之后)执行。在方法600的框605处,处理逻辑确定第一联网设备上的第一事件满足规则的准则,该准则导致在第二联网设备上执行操作。在框610处,处理逻辑确定在第二联网设备上执行的操作导致第二联网设备上的第二事件。在框615处,处理逻辑确定第二事件满足第二规则的准则,该准则导致在第一联网设备上执行第二操作。在框620处,处理逻辑确定第二操作导致第一联网设备上的第三事件,该第三事件满足第一规则的准则。
在框625处,处理逻辑检测规则执行循环。规则执行循环是其中两个或更多个规则重复地相互触发的循环。例如,第一规则触发第二规则,第二规则再次触发第一规则,如框605-620处所述。
在框630处,处理逻辑确定是否设置速率极值或规则执行循环极值。速率极值是在给定时间段内可以触发规则的允许次数。例如,可以允许规则每分钟触发1次、每小时2次、每天10次等。规则执行循环极值是许可的规则执行循环的迭代次数。规则执行循环极值为0将意味着不允许执行规则执行循环。规则执行循环极值为2将意味着规则执行循环可以迭代两次。处理逻辑进一步确定是否已超过速率极值或规则执行循环极值。如果是这样,尽管已经满足了第一规则的准则,但该方法结束而不生成任何进一步的命令。如果没有超过速率极值和/或规则执行循环极值,则该方法继续到框635。
在框635处,处理逻辑产生使第二联网设备执行所确定的操作的命令。注意的是方法600示出了仅包括两个规则的简单循环。然而,更复杂的循环可以包括在某些条件下彼此重复触发的3个、5个、10个或甚至更多个规则。
图7A是通过规则引擎生成执行规则的示例方法700的流程图。在方法700的框705处,处理逻辑提供用于规则生成的用户界面。用户界面可以是包括下拉菜单、窗口、按钮、图标等的图形用户界面。在框710处,处理逻辑从用户账户接收生成规则的请求。替选地,处理逻辑可以接收修改现有规则的请求。
在框715处,处理逻辑提供可用于用户账户的安全上下文的联网设备和/或服务的信息。在框720处,处理逻辑接收对要用作规则输入的第一联网设备的选择。
在框725处,处理逻辑提供与第一联网设备相关联的事件的信息。在框730处,处理逻辑接收对将用作规则输入的可用事件的选择。在框732处,处理逻辑接收对将通过该事件来满足而使所述规则执行操作的准则的选择。
在框735处,处理逻辑接收对作为规则输出的第二联网设备的选择。在框740处,处理逻辑提供关于与第二联网设备相关联的操作(例如可以由第二联网设备执行的操作)的信息。在框745处,处理逻辑接收对操作的选择。在框750处,处理逻辑生成和部署规则。
注意的是在方法700的各个框处提供的所有信息可以由用于规则生成的用户界面来提供。此外,还可以通过用户界面接收事件、设备、操作等的所有选择。因此,用户界面提供生成复杂规则的用户友好的系统,而不诉诸于执行任何编程的用户。此外,规则生成是针对生成规则的用户的特定安全上下文来定制的。对设备、服务、事件和操作的选择可能对于特定的安全上下文是唯一的。因此,用于规则生成的选项可以根据用户而改变。
还应当注意的是方法700详细描述了创建仅包括一个输入和一个输出且两者都是联网设备的简单规则的示例。然而,输入或输出可以替代地是服务或数据馈送。此外,多个输入和/或多个输出可以包括在更复杂的规则中。这样的规则可以包括在生成命令、发送通知或执行其它操作之前要满足的多个准则。
图7B是通过规则引擎生成执行规则的另一示例方法752的流程图。在方法700的框755处,处理逻辑记录与用户账户相关联的事件和操作(例如在特定用户账户的背景中发生的事件和操作)。替选地,处理逻辑可以接收由另一实体生成的事件和操作的日志。
在框760处,处理逻辑将机器学习算法应用于事件和操作的日志。在框765处,处理逻辑然后基于将日志应用于机器学习算法中来学习事件和对应操作的模式。在框770处,处理逻辑基于所学习的模式自动生成规则。例如,该规则可以导致响应于检测到特定事件或事件类型而执行特定操作。在框775处,处理逻辑部署规则。然后该方法结束。
图8是具有远程可访问嵌入式系统815的示例设备805的框图。设备可以包括任何前述类型的、具有嵌入式系统的设备,并且在一个实施方式中对应于图1的设备135A-135C。在一个实施方式中,设备805包括机械部件810、电气部件812以及嵌入式系统815。电气部件812和/或机械部件810可以包括传感器、可编程逻辑控制器(PLC)、开关、电机、阀、致动器等。
嵌入式系统815可以包括主机处理设备825、主机存储器830和/或耦接到主机处理设备825的通信模块850。嵌入式系统815可以还包括在此未示出的诸多其它部件。这些附加部件的示例可以包括发光二极管(LED)、电源稳压器、保险器、端口、用户接口、数模(D/A)转换器、模数(A/D)转换器、现场可编程门阵列(FPGA)、专用集成电路(ASIC)等。
在一个实施方式中,主机处理设备825可以是微控制器或数字信号处理器(DSP)。主机处理设备825可以可替选地或附加地包括可编程逻辑控制器(PLC)、现场可编程门阵列(FPGA)或复杂可编程逻辑设备(CPLD)。主机处理设备825可以被配置为执行与设备805的操作和控制有关的特定功能。
主机存储器830可以包括随机存取存储器(RAM)、只读存储器(ROM)、一次可编程(OTP)ROM、闪存(例如,NOR闪存)或其它类型的存储器。主机存储器830可以存储用于通信模块850的应用编程接口(API)835。API 835可以使得主机处理设备825能够向通信模块850发送命令和/或数据并且从通信模块850接收命令和/或数据。主机存储器830可以还包括用于主机处理设备825的固件,其配置主机处理设备以执行特征针对设备805的一个或多个操作。
在一些实施方式中,主机存储器830可以集成到主机处理设备825中。例如,微控制器通常包括处理器内核、存储器以及可编程输入/输出外设。相应地,如果主机处理设备825是微控制器,则主机存储器830可以是主机处理设备825的存储器。
通信模块850可以是被配置为与嵌入式系统815的主机处理设备825耦接的集成电路(IC)。通信模块850可以连同API 835一起由第三方提供给设备的制造商,并且可以使得网络能力和远程控制能力能够易于添加到设备805中。通信模块850可以包括其自身的处理设备855、存储器865和/或网络适配器860。处理设备855可以是微控制器、DSP、PLC、微处理器或可编程逻辑设备(例如FPGA或CPLD)。存储器可以包括非易失性存储器(例如RAM)和/或易失性存储器(例如ROM、闪存等)。在一个实施方式中,存储器865集成到处理设备855中。
存储器865可以存储对可访问各种安全上下文的设备805的一个或多个资源890(例如参数、属性和数据)进行标识的数据。任何这些资源可以用作用于生成规则的事件或操作。存储器865也可以存储用于处理设备855的固件(例如包括用于远程接口882的指令的固件)。
网络适配器855可以是有线网络适配器(例如以太网适配器)或无线网络适配器(例如Wi-Fi适配器或其它无线局域网(WLAN)适配器)。网络适配器860也可以被配置为使用Zigbee、PLC、蓝牙、6LowPAN或其它通信协议来提供对网络或其它设备的连接。网络适配器860可以从WAN可访问服务和/或远程控制应用接收通知和/或其它消息。网络适配器860可以将往外发送的消息另外发送给WAN可访问服务和/或远程控制应用。
上文已经参考提供为WAN可访问服务(例如为web服务或云服务)的规则引擎来描述实施方式。然而,在一些实施方式中,规则引擎894可以被包括在通信模块850的存储器865中。规则引擎894可以应用也驻留在存储器865中的一个或多个规则892。规则引擎894可以执行之前参考WAN可访问服务规则引擎描述的任何操作。然而,规则引擎894的输入馈送或输出馈送与嵌入式系统815相关联,而不是输入馈送来自外部源和输出馈送到其他外部目的地。因此,规则引擎894可以应用这样的规则892:响应于来自外部源的输入而触发嵌入式系统815上的操作。规则引擎894还可以应用这样的规则:响应于在嵌入式系统815上发生的事件而对外部目的地生成命令。
图9示出具有计算设备900这一示例形式的机器(其内可以执行用于使得机器执行在此所讨论的方法中的任何一种或多种的指令集)的图示。在可替选实施方式中,机器可以连接(例如联网)到局域网(LAN)、内部网、外部网或互联网中的其它机器。机器可以在客户机-服务器网络环境中以服务器或客户机机器的身份操作或在点对点(或分布式)网络环境中作为配对机器操作。机器可以是个人计算机(PC)、平板计算机、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、web电器、服务器、网络路由器、交换机或桥接器、或能够执行指令集(顺序的或其它方式,其指定待由该机器采取的动作)的任何机器。此外,虽然仅示出单个机器,但术语“机器”还应包括单独地或联合地执行用于执行在此所讨论的方法中的任何一种或多种的指令集的任何机器(例如计算机)集合。
示例计算设备900包括处理设备902、主存储器904(例如,只读存储器(ROM)、闪存、动态随机存取存储器(DRAM)(例如同步DRAM(SDRAM)或Rambus DRAM(RDRAM)等))、静态存储器906(例如闪存、静态随机存取存储器(SRAM)等)以及副存储器(例如数据存储设备918),其经由总线930彼此进行通信。
处理设备902表示一个或多个通用处理器(例如微处理器、中央处理单元等)。更具体地说,处理设备902可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器、执行其它指令集的处理器或执行指令集的组合的处理器。处理设备902也可以是一个或多个专用处理设备(例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等)。处理设备902被配置为执行用于执行在此所讨论的操作和步骤的处理逻辑(指令922)。
计算设备900还可以包括网络接口设备908。计算设备900也可以包括视频显示单元910(例如液晶显示器(LCD)或阴极射线管(CRT))、字母数字输入设备912(例如键盘)、光标控制设备914(例如鼠标)以及信号生成设备916(例如扬声器)。
数据存储设备918可以包括其中存储有实施本文所述方法或功能中的任何一种或多种的一个或多个指令集922的机器可读存储介质(或更具体地说是计算机可读存储介质)928。指令922也可以在其由计算机系统900、主存储器904和也构成计算机可读存储介质的处理设备902执行期间完全地或至少部分地驻留在主存储器904内和/或处理设备902内。
计算机可读存储介质928也可以用于存储规则引擎990和/或规则创建器995(如参考图2A-图2B所述)和/或包含调用规则引擎990和/或规则创建器995的方法的软件库。虽然计算机可读存储介质928在示例实施方式中被示为单个介质,但术语“计算机可读存储介质”应看作包括存储一个或多个指令集的单个介质或多个介质(例如集中式和分布式数据库、和/或关联缓存和服务器)。术语“计算机可读存储介质”也应看作包括能够对用于由机器执行的指令集进行存储或编码并且使得机器执行在此所描述的方法中的任何一种或多种的任何介质。术语“计算机可读存储介质”相应地应看作包括但不限于固态存储器以及光学介质和磁性介质。
在此(例如结合图1-图2B)所描述的模块、部件和其它特征可以实现为分立式硬件部件或集成在硬件部件(例如ASICS、FPGA、DSP或相似设备)的功能性中。此外,模块可以实施为硬件设备内的固件或功能电路。此外,模块可以以硬件设备和软件部件的任何组合或仅以软件实施。
以上已经关于对计算机存储器内的数据比特进行的操作的算法和符号表示而提出了详细描述的一些部分。这些算法描述和表示是由数据处理领域技术人员用于最高效地将他们的工作的实质性传达给其它本领域技术人员的手段。在这里以及通常而言,算法被构想为带来期望结果的自洽步骤序列。所述步骤是需要对物理量进行物理操控的步骤。虽然并非必要,但通常这些量具有能够被存储、传送、组合、比较以及其它方式操控的电信号或磁信号的形式。已经证明:有时(主要出于普通使用的原因)将这些信号作为比特、值、元素、符号、字符、术语、数字等提及是方便的。
然而,应理解,所有这些术语和相似的术语是与适当的物理量关联的,并且仅是应用于这些量的方便的标记。除非另外具体地声明,从以下讨论可看出:应理解,在整个说明书中,使用例如“接收”、“标识”、“确定”、“生成”、“发送”等术语进行的讨论是指计算机系统或相似电子计算设备的动作和处理,其对表示为计算机系统的寄存器和存储器内的物理(电子)量的数据进行操控并且将其变换为相似地表示为计算机系统存储器或寄存器或其它这样的信息存储设备、传输设备或显示设备内的物理量的其它数据。
本发明实施方式还涉及一种用于执行本文中的操作的装置。该装置可以被特定构造用于所讨论的目的,或其可以包括通过计算机系统中所存储的计算机程序选择性编程的通用计算机系统。该计算机程序可以存储在计算机可读存储介质(例如但不限于任何类型的盘(包括软盘、光盘、CD-ROM和磁光盘)、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁盘存储介质、光存储介质、闪存设备、其它类型的机器可存取存储介质或均耦接到计算机系统总线的适合于存储电子指令的任何类型的介质)中。
应理解,以上描述意在说明性而非限制性的。在阅读并且理解以上描述时,很多其它实施方式对于本领域技术人员将是显然的。虽然已经参考特定示例实施方式描述了本发明,但应理解,本发明不限于所描述的实施方式,而是可以在所附权利要求的精神和范围内通过修改和改动而得以实践。相应地,说明书和附图看作是说明性意义而不是限制性意义。因此,应参考附图连同这些权利要求所赋予的等同方案的完全范围一起来确定本发明的范围。
Claims (20)
1.一种方法,包括:
通过执行规则引擎的处理设备接收关于第一联网设备上的第一事件的通知;
通过所述处理设备标识与第一用户账户相关联的第一规则,其中所述第一用户账户进一步与所述第一联网设备相关联,并且其中所述第一联网设备上的所述第一事件是针对所述第一规则的输入;
通过所述处理设备确定所述第一事件满足所述第一规则的第一准则;
响应于确定所述第一事件满足所述第一准则,通过所述处理设备确定待由第二联网设备执行的第一操作,其中所述第二联网设备也与所述第一用户账户相关联;
生成用于所述第二联网设备的第一命令,其中所述第一命令使所述第二联网设备执行所述第一操作;以及
将所述第一命令发送到所述第二联网设备。
2.根据权利要求1所述的方法,还包括:
从第三方服务接收关于第二事件的附加通知;
确定所述第二事件满足所述第一规则的第二准则;以及
响应于确定所述第一事件满足所述第一准则并且所述第二事件满足所述第二准则,生成所述第一命令。
3.根据权利要求1所述的方法,其中,所述第一联网设备包括第一嵌入式系统,并且所述第二联网设备包括第二嵌入式系统。
4.根据权利要求1所述的方法,还包括:
响应于确定所述第一事件满足所述第一准则,生成用于在服务器计算设备上运行的服务的第二命令;以及
将所述第二命令发送到所述服务器计算设备上的所述服务。
5.根据权利要求1所述的方法,还包括:
响应于确定所述第一事件满足所述第一准则,将附加通知发送到所述第一用户账户的用户,其中所述附加通知包括文本消息和电子邮件消息中的至少一者。
6.根据权利要求1所述的方法,还包括:
确定所述第一用户账户的安全上下文,其中所述第一规则是从所述第一用户账户生成的;
在所述第一规则的所述第一准则满足时,确定所述第一命令对于所述第一用户账户的安全上下文是否是允许的;以及
响应于确定所述第一命令在所述第一用户账户的安全上下文内而发送所述第一命令。
7.根据权利要求6所述的方法,还包括:
生成日志,其中所述日志包括针对生成所述第一命令和针对发送所述第一命令的条目,并且其中所述条目标识所述第一用户账户的安全上下文。
8.根据权利要求1所述的方法,其中,所述规则引擎是多租户规则引擎,所述方法还包括:
接收关于第三联网设备和第一服务中的至少一者上的第二事件的附加通知;
确定所述第二事件满足与第二用户账户相关联的第二规则的第二准则;以及
响应于确定所述第二事件满足所述第二规则的所述第二准则,生成用于第四联网设备和第二服务中的至少一者的第二命令,其中所述第一规则对于所述第二用户账户是不可访问的并且不能应用于与所述第二用户账户相关联的联网设备,并且其中所述第二规则对于所述第一用户账户是不可访问的并且不能应用于与所述第一用户账户相关联的联网设备。
9.根据权利要求1所述的方法,还包括:
从所述用户账户接收生成所述第一规则的请求;
提供用于规则生成的用户界面,其中所述用户界面提供关于与所述第一用户账户相关联的联网设备的信息、关于与所述联网设备相关联的事件的信息、以及关于与所述联网设备相关联的操作的信息;
通过所述用户界面接收对所述第一联网设备的选择以及对将用于所述第一规则的所述第一准则中的所述第一事件的选择;
通过所述用户界面接收对所述第二联网设备的选择以及对将用作所述第一规则的输出的操作的选择;以及
生成所述第一规则。
10.根据权利要求9所述的方法,其中,所述第一规则是在没有用户为所述第一规则编写任何代码的情况下生成的。
11.根据权利要求1所述的方法,还包括:
确定在所述第一联网设备和服务中的至少一者上未能发生第二事件;
确定未能发生所述第二事件满足了第二规则的第二准则;以及
响应于确定满足所述第二准则,生成用于所述第二联网设备和第二服务中的至少一者的第二命令。
12.根据权利要求1所述的方法,还包括:
确定在所述第二联网设备上执行的所述第一操作导致满足第二规则的第二准则;
响应于确定满足所述第二准则,生成用于所述第一联网设备的第二命令;
检测所述第二命令的生成在特定情况下引起规则执行循环;以及
防止所述规则执行循环发生。
13.根据权利要求1所述的方法,还包括:
检测到再次满足所述第一规则的所述第一准则;
确定所述第一规则是否已经超过速率极值,其中所述速率极值将所述第一规则限于每给定时间段内为设定的执行次数;以及
响应于确定所述第一规则已超过所述速率极值,防止再次生成所述第一命令。
14.一种具有指令的计算机可读存储介质,所述指令在由处理设备执行时使所述处理设备执行操作,所述操作包括:
所述处理设备接收关于第一联网设备上的第一事件的通知;
所述处理设备标识与第一用户账户相关联的第一规则,其中所述第一用户账户进一步与所述第一联网设备相关联,并且其中所述第一联网设备上的所述第一事件是针对所述第一规则的输入;
所述处理设备确定所述第一事件满足所述第一规则的第一准则;
响应于确定所述第一事件满足所述第一准则,所述处理设备确定待由所述第二联网设备执行的第一操作,其中所述第二联网设备也与所述第一用户账户相关联;
生成用于所述第二联网设备的第一命令,其中所述第一命令使所述第二联网设备执行所述第一操作;以及
将所述第一命令发送到所述第二联网设备。
15.根据权利要求14所述的计算机可读存储介质,所述操作还包括:
从第三方服务接收关于第二事件的附加通知;
确定所述第二事件满足所述第一规则的第二准则;以及
响应于确定所述第一事件满足所述第一准则并且所述第二事件满足所述第二准则,生成所述第一命令。
16.根据权利要求14所述的计算机可读存储介质,所述操作还包括:
响应于确定所述第一事件满足所述第一准则,生成用于在服务器计算设备上运行的服务的第二命令;以及
将所述第二命令发送到所述服务器计算设备上的所述服务。
17.根据权利要求14所述的计算机可读存储介质,所述操作还包括:
确定所述第一用户账户的安全上下文,其中所述第一规则是从所述第一用户账户生成的;
在所述第一规则的所述第一准则满足时,确定所述第一命令对于所述第一用户账户的安全上下文是否是允许的;以及
响应于确定所述第一命令在所述第一用户账户的安全上下文内而发送所述第一命令。
18.根据权利要求14所述的计算机可读存储介质,其中,所述处理设备执行多租户规则引擎,所述操作还包括:
接收对于第三联网设备和第一服务中的至少一者上的第二事件的附加通知;
确定所述第二事件满足与第二用户账户相关联的第二规则的第二准则;以及
响应于确定所述第二事件满足所述第二规则的所述第二准则,生成用于第四联网设备和第二服务中的至少一者的第二命令,其中所述第一规则对于所述第二用户账户是不可访问的并且不能应用于与所述第二用户账户相关联的联网设备,并且其中所述第二规则对于所述第一用户账户是不可访问的并且不能应用于与所述第一用户账户相关联的联网设备。
19.根据权利要求14所述的计算机可读存储介质,所述操作还包括:
从所述第一用户账户接收生成所述第一规则的请求;
提供用于规则生成的用户界面,其中所述用户界面提供关于与所述第一用户账户相关联的联网设备的信息、关于与所述联网设备相关联的事件的信息、以及关于与所述联网设备相关联的操作的信息;
通过所述用户界面接收对所述第一联网设备的选择以及对将用于所述第一规则的所述第一准则中的所述第一事件的选择;
通过所述用户界面接收对所述第二联网设备的选择以及对将用作所述第一规则的输出的操作的选择;以及
生成所述第一规则。
20.一种系统,包括:
存储器,所述存储器用于存储用于规则引擎的第一规则和指令;以及
处理设备,所述处理设备联接到所述存储器以执行用于所述规则引擎的所述指令,其中所述指令使所述处理设备执行如下操作:
响应于接收到关于第一嵌入式系统上的第一事件的通知而标识与第一用户账户相关联的第一规则,其中所述第一用户账户还与所述第一嵌入式系统相关联,并且其中所述第一嵌入式系统上的所述第一事件是针对所述第一规则的输入;
确定所述第一事件满足所述第一规则的第一准则;
响应于确定所述第一事件满足所述第一准则,确定待由第二联网设备执行的第一操作,其中所述第二联网设备也与所述第一用户账户相关联;
生成用于所述第二联网设备的第一命令,其中所述第一命令使所述第二联网设备执行所述第一操作;以及
将所述第一命令发送到所述第二联网设备。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/515,265 | 2014-10-15 | ||
US14/515,265 US9729383B2 (en) | 2014-10-15 | 2014-10-15 | Flexible rules engine for managing connected consumer devices |
PCT/US2015/047280 WO2016060741A1 (en) | 2014-10-15 | 2015-08-27 | Flexible rules engine for managing connected consumer devices |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107003924A true CN107003924A (zh) | 2017-08-01 |
Family
ID=55747088
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580068346.8A Pending CN107003924A (zh) | 2014-10-15 | 2015-08-27 | 用于管理已连接消费者设备的灵活规则引擎 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9729383B2 (zh) |
EP (1) | EP3207456A4 (zh) |
CN (1) | CN107003924A (zh) |
WO (1) | WO2016060741A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108563490A (zh) * | 2018-04-13 | 2018-09-21 | 中国民航信息网络股份有限公司 | 解释型规则处理方法、装置、设备及介质 |
CN112532528A (zh) * | 2020-11-30 | 2021-03-19 | 北京百度网讯科技有限公司 | 用于规则引擎的消息路由方法和装置 |
Families Citing this family (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9450904B2 (en) * | 2013-07-15 | 2016-09-20 | Dropbox, Inc. | Coordinated notifications across multiple channels |
US11190400B2 (en) | 2014-08-06 | 2021-11-30 | Belkin International, Inc. | Identifying and automating a device type using image data |
WO2016099148A1 (en) * | 2014-12-16 | 2016-06-23 | Samsung Electronics Co., Ltd. | Method and apparatus for controlling device using a service rule |
US10417345B1 (en) * | 2014-12-22 | 2019-09-17 | Amazon Technologies, Inc. | Providing customer service agents with customer-personalized result of spoken language intent |
US20160197769A1 (en) * | 2015-01-06 | 2016-07-07 | Kiban Labs, Inc. | System and method for filtering events at an iot hub |
US9774507B2 (en) | 2015-01-06 | 2017-09-26 | Afero, Inc. | System and method for collecting and utilizing user behavior data within an IoT system |
US9729340B2 (en) | 2015-01-06 | 2017-08-08 | Afero, Inc. | System and method for notifying a user of conditions associated with an internet-of-things (IoT) hub |
US9774497B2 (en) | 2015-01-06 | 2017-09-26 | Afero, Inc. | System and method for implementing internet of things (IOT) remote control applications |
US9933768B2 (en) | 2015-01-06 | 2018-04-03 | Afero, Inc. | System and method for implementing internet of things (IOT) remote control applications |
US10816944B2 (en) | 2015-01-06 | 2020-10-27 | Afero, Inc. | System and method for using data collected from internet-of-things (IoT) sensors to disable IoT-enabled home devices |
US9860681B2 (en) | 2015-01-06 | 2018-01-02 | Afero, Inc. | System and method for selecting a cell carrier to connect an IOT hub |
GB2534557B (en) * | 2015-01-21 | 2022-03-09 | Arm Ip Ltd | Methods and resources for creating permissions |
CN104749962B (zh) * | 2015-03-09 | 2017-06-27 | 联想(北京)有限公司 | 一种基于联动规则的控制智能家居的方法及控制装置 |
CN104808499B (zh) * | 2015-03-09 | 2019-01-15 | 联想(北京)有限公司 | 一种基于联动规则控制智能家居设备的方法及控制装置 |
US9667573B2 (en) * | 2015-04-28 | 2017-05-30 | Unisys Corporation | Identification of automation candidates using automation degree of implementation metrics |
US9686220B2 (en) * | 2015-04-28 | 2017-06-20 | Unisys Corporation | Debug and verify execution modes for computing systems calculating automation degree of implementation metrics |
US10153992B2 (en) * | 2015-04-28 | 2018-12-11 | Unisys Corporation | Identification of progress towards complete message system integration using automation degree of implementation metrics |
US11347876B2 (en) | 2015-07-31 | 2022-05-31 | British Telecommunications Public Limited Company | Access control |
EP3329440A1 (en) * | 2015-07-31 | 2018-06-06 | British Telecommunications public limited company | Controlled resource provisioning in distributed computing environments |
WO2017023625A1 (en) * | 2015-07-31 | 2017-02-09 | Apple Inc. | Delegation of trigger execution in an automated environment |
US10956614B2 (en) | 2015-07-31 | 2021-03-23 | British Telecommunications Public Limited Company | Expendable access control |
US11720571B2 (en) | 2015-08-17 | 2023-08-08 | Comcast Cable Communications, Llc | Unified description scheme for controlling and operating network connected devices |
US10742739B2 (en) * | 2015-08-18 | 2020-08-11 | Comcast Cable Communications, Llc | Platform for controlling and operating network connected devices |
US10241754B1 (en) * | 2015-09-29 | 2019-03-26 | Amazon Technologies, Inc. | Systems and methods for providing supplemental information with a response to a command |
US11153091B2 (en) | 2016-03-30 | 2021-10-19 | British Telecommunications Public Limited Company | Untrusted code distribution |
US10534746B2 (en) * | 2016-05-09 | 2020-01-14 | Droplit, Inc. | System and method for defining machine-to-machine communicating devices and defining and distributing computational tasks among same |
KR20190092510A (ko) * | 2016-12-08 | 2019-08-07 | 콤프텔 오와이 | 통신 네트워크에서의 적응형 트래픽 프로세싱 기법 |
KR102426400B1 (ko) * | 2017-08-23 | 2022-07-29 | 삼성전자주식회사 | 외부 장치 액션 설정 방법 및 이를 지원하는 전자 장치 |
US11665059B2 (en) * | 2018-02-21 | 2023-05-30 | Aeris Communications, Inc. | Intelligent carrier and service selection for the internet of things |
FR3079380A1 (fr) * | 2018-03-26 | 2019-09-27 | Orange | Gestion securitaire d'un reseau de communication local comprenant au moins un objet communicant. |
US11184162B1 (en) * | 2018-09-28 | 2021-11-23 | NortonLifeLock Inc. | Privacy preserving secure task automation |
WO2020165153A1 (en) * | 2019-02-14 | 2020-08-20 | Signify Holding B.V. | Improving automation rules by determining a relationship between events and control commands |
US11405414B2 (en) | 2019-08-06 | 2022-08-02 | Bank Of America Corporation | Automated threat assessment system for authorizing resource transfers between distributed IoT components |
US10921787B1 (en) | 2019-08-06 | 2021-02-16 | Bank Of America Corporation | Centralized resource transfer engine for facilitating resource transfers between distributed internet-of-things (IoT) components |
US11341485B2 (en) | 2019-08-06 | 2022-05-24 | Bank Of America Corporation | Machine learning based system for authorization of autonomous resource transfers between distributed IOT components |
CN113574482B (zh) * | 2019-08-30 | 2023-12-08 | Oppo广东移动通信有限公司 | 一种规则校验方法和装置、计算机设备 |
US11336504B2 (en) | 2020-08-24 | 2022-05-17 | Juniper Networks, Inc. | Intent-based distributed alarm service |
US11507582B2 (en) * | 2020-12-09 | 2022-11-22 | Charter Communications Operating, Llc | Event-driven internet of things (IoT) abstraction using rules |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080059474A1 (en) * | 2005-12-29 | 2008-03-06 | Blue Jungle | Detecting Behavioral Patterns and Anomalies Using Activity Profiles |
US20080294588A1 (en) * | 2007-05-22 | 2008-11-27 | Stephen Jeffrey Morris | Event capture, cross device event correlation, and responsive actions |
US7484097B2 (en) * | 2002-04-04 | 2009-01-27 | Symantec Corporation | Method and system for communicating data to and from network security devices |
US20100097225A1 (en) * | 2008-10-17 | 2010-04-22 | Robert Bosch Gmbh | Automation and security system |
US20140266669A1 (en) * | 2013-03-14 | 2014-09-18 | Nest Labs, Inc. | Devices, methods, and associated information processing for security in a smart-sensored home |
CN104062962A (zh) * | 2014-07-01 | 2014-09-24 | 宁波市北仑海伯精密机械制造有限公司 | 一种物联网设备自动控制系统及其控制方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8261095B1 (en) * | 2001-11-01 | 2012-09-04 | Google Inc. | Methods and systems for using derived user accounts |
WO2004015627A2 (en) | 2002-08-09 | 2004-02-19 | Corticon Technologies, Inc. | Rule engine |
US7739367B2 (en) | 2006-01-12 | 2010-06-15 | Ricoh Company, Ltd. | Managing network-enabled devices |
US9026639B2 (en) | 2007-07-13 | 2015-05-05 | Pure Networks Llc | Home network optimizing system |
US8588990B2 (en) | 2011-06-30 | 2013-11-19 | Ayla Networks, Inc. | Communicating through a server between appliances and applications |
US8978157B2 (en) | 2012-05-09 | 2015-03-10 | Ricoh Company, Ltd. | Managing access to data based on device attribute information |
US9853826B2 (en) * | 2013-02-25 | 2017-12-26 | Qualcomm Incorporated | Establishing groups of internet of things (IOT) devices and enabling communication among the groups of IOT devices |
US9600571B2 (en) * | 2013-07-11 | 2017-03-21 | Neura, Inc. | Interoperability mechanisms for internet of things integration platform |
-
2014
- 2014-10-15 US US14/515,265 patent/US9729383B2/en active Active
-
2015
- 2015-08-27 EP EP15851597.3A patent/EP3207456A4/en not_active Withdrawn
- 2015-08-27 WO PCT/US2015/047280 patent/WO2016060741A1/en active Application Filing
- 2015-08-27 CN CN201580068346.8A patent/CN107003924A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7484097B2 (en) * | 2002-04-04 | 2009-01-27 | Symantec Corporation | Method and system for communicating data to and from network security devices |
US20080059474A1 (en) * | 2005-12-29 | 2008-03-06 | Blue Jungle | Detecting Behavioral Patterns and Anomalies Using Activity Profiles |
US20080294588A1 (en) * | 2007-05-22 | 2008-11-27 | Stephen Jeffrey Morris | Event capture, cross device event correlation, and responsive actions |
US20100097225A1 (en) * | 2008-10-17 | 2010-04-22 | Robert Bosch Gmbh | Automation and security system |
US20140266669A1 (en) * | 2013-03-14 | 2014-09-18 | Nest Labs, Inc. | Devices, methods, and associated information processing for security in a smart-sensored home |
CN104062962A (zh) * | 2014-07-01 | 2014-09-24 | 宁波市北仑海伯精密机械制造有限公司 | 一种物联网设备自动控制系统及其控制方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108563490A (zh) * | 2018-04-13 | 2018-09-21 | 中国民航信息网络股份有限公司 | 解释型规则处理方法、装置、设备及介质 |
CN112532528A (zh) * | 2020-11-30 | 2021-03-19 | 北京百度网讯科技有限公司 | 用于规则引擎的消息路由方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2016060741A1 (en) | 2016-04-21 |
EP3207456A4 (en) | 2018-05-30 |
EP3207456A1 (en) | 2017-08-23 |
US9729383B2 (en) | 2017-08-08 |
US20160112240A1 (en) | 2016-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107003924A (zh) | 用于管理已连接消费者设备的灵活规则引擎 | |
US10768644B2 (en) | Camera data access based on subscription status | |
US10985973B2 (en) | System for connecting and controlling multiple devices | |
US9854386B2 (en) | Methods and apparatus for using smart environment devices via application program interfaces | |
KR101662396B1 (ko) | IoT 장치를 제어하기 위한 방법 및 시스템 | |
CN107005444B (zh) | 设备同步和测试 | |
CN107003836B (zh) | 用于所连接的消费者设备的灵活设备模板 | |
CN108351760A (zh) | 馈送服务引擎 | |
Soares et al. | Programming iot-spaces: A user-survey on home automation rules | |
Heo et al. | Rt-ifttt: Real-time iot framework with trigger condition-aware flexible polling intervals | |
Kim et al. | Seamless integration of heterogeneous devices and access control in smart homes and its evaluation | |
Katsigarakis et al. | Sense‐Think‐Act Framework for Intelligent Building Energy Management | |
Pradeep et al. | Conflict detection and resolution in IoT systems: a survey | |
Arjunan et al. | SensorAct: a decentralized and scriptable middleware for smart energy buildings | |
Tomic et al. | Semantics for energy efficiency in smart home environments | |
Mahmud et al. | Power profiling of context aware systems: a contemporary analysis and framework for power conservation | |
Xiao et al. | The design and implementation of an energy-smart home in Korea | |
Simão | IoT Platforms for Building Automation With Energy Efficiency and Comfrot Concerns | |
Ameen | IoT circuit board and application for smart home systems | |
Amrutlal | Development of the" Smart Office" project based on the Internet of things (IoT) technologies |
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. |
|
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170801 |