CN107005444B - 设备同步和测试 - Google Patents
设备同步和测试 Download PDFInfo
- Publication number
- CN107005444B CN107005444B CN201580061181.1A CN201580061181A CN107005444B CN 107005444 B CN107005444 B CN 107005444B CN 201580061181 A CN201580061181 A CN 201580061181A CN 107005444 B CN107005444 B CN 107005444B
- Authority
- CN
- China
- Prior art keywords
- physical
- standard
- devices
- time
- physical 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B17/00—Systems involving the use of models or simulators of said systems
- G05B17/02—Systems involving the use of models or simulators of said systems electric
-
- 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/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L67/025—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/14—Time supervision arrangements, e.g. real time clock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/2803—Home automation networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Automation & Control Theory (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer And Data Communications (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供了使得设备、服务和应用程序能够被连接在一起的平台。经由该平台创建“连接环境”要求协调多个设备制造商和服务提供商,以及多个标准/协议。有利地,平台去除对不同设备的不同制造商采用公共协议来使得能够进行设备连接的要求,并且另外,平台为消费者去除配置的负担。可以在经由平台实施时间相关行为和成群的设备的时间相关行为之前,在模拟环境中测试时间相关行为和成群的设备的时间相关行为,以识别突现行为和软件错误,来增强用户体验。
Description
技术领域
本发明大体上涉及能够使得设备、服务和应用程序连接在一起的系统、方法和计算机程序代码,以提供物联网。更特别地,本发明提供用于同步跨越多个连接设备的时间的系统和方法。
背景技术
市场上存在可用于消费者的大量且广泛而多样的家庭和办公电器和物理设备。当用户位于远离特定的设备自身时,对于这样的消费类电子商品和电器彼此连接和/或被连接到互联网以使得用户能够经由互联网控制和/或监测特定的设备变得越来越普遍。
家/办公室中连接设备的激增创建对更简单的用户体验的需要。在1990年代,住户通常仅包含连接到互联网的一个物理设备-个人计算机(PC)。现在的住户和办公室大体上具有几个连接设备(例如,PC、智能电话、平板计算机、TV、智能恒温器等),并且未来的住户将具有十个、可能百个连接设备是可行的。当前在市场上可用的连接设备和软件应用程序(“app”)的示例是使得用户能够监测它们的能量(例如,天然气和/或电)消耗且确定它们如何使用在它们的家/办公室中的能量的物理设备和app。例如,特定的物理设备可以是能够确定对于不同类别的能量使用(诸如,照明、供暖、做饭等)在家中使用了多少能量的智能能量监测器。物理设备可以被连接到互联网,并且可以经由用户的智能电话上的用户界面(UI)或app被用户远程监测。连接物理设备的另一个示例是智能恒温器,可以由用户远程监测智能恒温器,并且智能恒温器可以是远程可控的,以当用户返回到用户的家/办公室时,允许用户开启供暖设备,或当用户指示用户不再他的家中时,允许用户自动关掉供暖系统。
普通消费者可没有时间、兴趣或能力专心于分别监测连接设备(例如,检查它们如预期的在操作)。例如,典型的消费者可没有时间或兴趣与他们的智能恒温器接合在一起,以控制他们的供暖系统,并且宁可使用自动控制它们的供暖系统的设备。对于一些用户,因此,如果连接设备很大程度上自主,在后台不引人注意地工作,在资源供给、更新和日常表现方面自己注意,则将是更可取的。
还有,普通消费者可没有时间、兴趣或能力配置设备来创建“连接环境”(例如,“连接家庭”或“连接办公室”。创建“连接家庭”通常要求家用集线器设备(硬件设备)的使用,所有物理设备和电器都连接到家用集线器设备(硬件设备)。集线器可使得家/办公室中的低功率边缘设备连接到互联网、到经由云可访问的服务,或经由互联网到其它设备。这大体上通过网关(网络节点、电信路由器或能够在可以使用不同的通信协议的网络之间路由数据的代理服务器,或经配置用于实行相同的任务的计算机/计算机程序)的使用来实现。网关可以是经由集线器可访问的,或集线器可以包含实行网关的任务的计算机程序/软件。网关在互联网协议和不同的通信协议(例如,用于创建个人局域网的ZigBee(RTM)协议)之间转化。
一般来说,在每个设备制造商使用他们自己的方法和优选的通信协议的情况下,电子设备先前已经以不协调的方式连接到互联网。拥有来自不同制造商/销售商的不同的电子设备的消费者常常面临不得不使用不同的技术来配置每个电子设备以连接到互联网的困难,这使得用户很难远程监测/控制他们的设备。还有,电子设备之间可缺乏互操作性,即使广告上说它们能够连接到其它电子设备。
本申请已经认识到提供更简单地使得多个不同的家庭和办公室电子设备连接到互联网和彼此连接的平台的需要。
发明内容
广义地说,本发明的实施例涉及供给使得设备、服务和应用程序能够连接在一起以创建“连接环境”的系统和/或涉及提供创建“物联网”(用于意指现有互联网基础设施内的唯一可识别设备的互连的术语)的简化的方式的系统。经由该系统创建“连接环境”要求协调由多个制造商制作的物理设备、由多个服务提供商提供的服务和多个规范和通信协议。然而,可以参考特定时钟指定由用户指定的时间相关动作,特定的时钟可未示出与物理设备的内部时钟相同的时间(为物理设备的内部时钟指定动作)。例如,如果用户希望远程控制他们的供暖设备在17:30开启,使得在他下班回家之前他们的家开始变暖,则如果锅炉的内部时钟不与用户的时钟上的时间匹配,则锅炉可以在由用户使用的时钟上的时间之前或之后开始燃烧。结果,用户的家可以使用比期望的更多的能量(作为锅炉燃烧地太早的结果),或可以比期望的更冷(作为锅炉燃烧地太晚的结果)。对于更复杂的时间相关动作(诸如为了供暖和/或热水,恒温器开启锅炉/关掉锅炉的每周时间表),问题加重。
可以在计算上约束物理设备(传感器和致动器),并且测试物理设备(传感器和致动器)通常是高度手动过程(不可靠、缓慢和昂贵)。可期望测试物理设备,使得它们如预期的操作,特别是如果它们的行为可以是时间相关的。例如,现代恒温器是可编程的以设置指定锅炉何时开启以生成热水和/或以提供集中供暖的每周(或每月)时间表。可期望检查恒温器正确地解释和实施时间表。测试可能的时间表(或所有可能的时间表)可以是冗长的手动过程,并且因而可以是昂贵的和容易产生误差的。还有,手动测试要求一个接一个地测试各个物理设备。期望能够批量一起测试多个设备。
根据本发明的第一方面,提供了一种系统,包括:至少一个物理设备,其中物理设备是由系统可寻址的,并且其中物理设备由设备驱动程序操作或控制;模拟模块,模拟模块包括用于存储用于至少一个物理设备的设备驱动程序的副本的存储装置;以及至少一个处理器,至少一个处理器经配置用于:接收用于至少一个物理设备的至少一个时间相关命令,其中,时间是从基准时钟获得的;通过以下测试模拟模块内的系统操作:定义测试周期;为所述测试周期调整基准时钟;在所述测试周期中,将至少一个时间相关命令应用于与指定的物理设备相关联的设备驱动程序的副本,以模拟指定的物理设备的行为;以及输出关于指定的物理设备的模拟行为的任何问题;以及通过将时间相关命令发送到与指定的物理设备相关联的设备驱动程序,控制系统内的物理设备,其中设备驱动程序将时间相关命令应用于物理设备。
在实施例中,系统还可以包括多个物理设备。也就是说,系统可以使得能够进行至少一个物理设备或多个物理设备的控制。
根据本发明的相关的方面,提供了一种用于测试在单个平台中互连的多个设备、服务和应用程序的方法,方法包括:接收为至少一个物理设备指定的至少一个时间相关动作,其中,时间是从基准时钟获得的;定义测试周期;为所述测试周期调整所述基准时钟;在所述测试周期中,将每个时间相关动作应用于与指定的物理设备相关联的设备驱动程序的副本,以模拟指定的物理设备的行为,其中设备驱动程序的副本是用于操作或控制至少一个物理设备的驱动程序的副本;以及输出关于指定的物理设备的模拟行为的任何问题。
以下特征应用于这两个方面。
在一个或多个物理设备上实施时间表或时间相关指令/命令之前,可以通过在可以在模拟模块内的模拟环境中模拟物理设备的操作,实现测试时间表或时间相关指令/命令。模拟模块可以包括与耦接到系统的该物理设备或每个物理设备相关联的驱动程序软件的副本或实例。驱动程序软件的副本被用于实行物理设备的测试。可以在模拟环境中识别在物理设备的驱动程序软件中的问题,并且由于将由相同的驱动程序软件操作和/或控制由特定的制造商制作的特定类型/版本的所有物理设备,所以为所有物理设备识别问题,而不用分别且手动地检查它们。设备驱动程序的副本可以被布置成与模拟代码相互作用,该模拟代码模拟一个或多个物理设备的行为和/或响应。还有,模拟环境可以被用于测试物理设备的组合。例如,如果恒温器是远程可操作的或可编程的,则模拟环境可以包括被用于远程控制恒温器以及模拟恒温器的用户界面/用户设备的模拟版本(即,与物理设备和/或用于物理设备的设备模拟代码相关联的设备驱动程序的副本)。在模拟环境中运行的测试可以检查是否由恒温器正确地解释且正确地实施由用户设置的指令。这可以帮助识别和校正当尝试配置用户的用户设备以控制真实世界中的恒温器时用户可能面对的任何潜在的问题。
为了使得能够进行测试,在模拟环境中,系统可以经配置用于将时间注入到成为物理设备的基础的软件(例如,设备驱动程序的副本)中。因此,在模拟环境中,在整个代码中,用从基准时钟获得的时间置换与物理设备相关联的软件代码内的时间值。基准时钟可以优选地是可控制的时间信号,可控制的时间信号可以被用于在代码中设置特定的时间、设置用于测试代码的时间顺序,和/或用于使时间加速,使得可以在一定时间周期内测试代码。使时间加速以测试设备或时间表可以对检查在长的时间周期内或在几天、几周、几月和几年之间的过渡内是否发生任何问题特别有用。例如,加速的时间可以被用于检查在普通的年和闰年期间设备是否正确地操作,和/或在当日光节约时间生效时的那些天设备是否正确地操作。
因此,处理器可以经配置用于调整基准时钟以使测试周期的时间加速。供选择地,处理器可以经配置用于调整基准时钟以改变时间周期,例如,以使时间向前行进。
因而,为了实施,在为物理设备指定的时间相关动作/命令被提供到物理设备之前,在模拟环境中测试为物理设备指定的时间相关动作/命令。在实施例中,时间相关的动作由系统调整以对基准时钟和物理设备的内部时钟之间的时钟偏移作出说明,使得在期望的时间实施动作。如果指定多个同步动作,则这个是特别有用的。例如,用户可以远程吩咐安全相机在22:00开启,并且吩咐记录设备在22:00记录由相机捕获的图像。然而,如果没有调整指令来对与相机和记录设备相关联的不同的时钟偏移作出说明,则在一个时刻可以开启安全,并且可以在之后的时间内仅开启记录设备,由此不记录由相机捕获的所有图像。然而,优选地,基于基准时钟,时间相关命令被发送到物理设备的设备驱动程序,用于应用,并且物理设备的内部时钟基本上被忽略。例如,如果时间相关命令为在14:00将恒温器温度往上转到所需要的温度,则当基准时钟到达14:00时,设备驱动程序经配置用于调整恒温器温度,不管内部时钟的时间。
在将指令发送到物理设备之前,处理器调整时钟偏移。处理器可以集中位于系统内。额外地或供选择地,物理设备可以具有处理能力,以调整指令自身-在该情况下,物理设备既被提供具有时间相关指令又被提供具有基准时间,使得物理设备的处理器可以自身确定其偏移,并且在所需要的时间实施指令。在另外的供选择的实施例中,物理设备可以具有处理能力,以查询基准时钟,并且自动调整它们的内部时钟以与基准时钟匹配。然而,这取决于制造商是否已经提供具有所要求的电路和软件的物理设备以采取这样的动作。因此,将预调整的指令提供给物理设备可以被用于不具有所要求的处理能力的物理设备以自己实行调制。
在实施例中,基准时钟可以是在系统内定义的单个基准时钟。额外地或供选择地,基准时钟可以是用于从被提供在系统外部的外部时钟获得时间的调用。因此,仅当在当前时间内设备驱动程序能够查询基准时钟时,时间相关控制可以是可能的。如果因为例如查询外部时钟所要求的连接暂时被丢失而造成设备驱动程序不能这样做,则设备驱动程序可以使用物理设备的内部时钟切换到应用时间相关命令。
在实施例中,系统还可以包括先例模块,该先例模块表示第一抽象层或模块,并且被用于使连接到系统中的物理设备抽象化。除了模拟模块之外或替代模拟模块,可以使用先例模块,并且可以使用先例模块实行时间相关命令的测试。可以由第一抽象层使用标准形式以除去物理设备的实施细节,使得连接到系统中的物理设备仅由它们的行为/功能来定义。至少一个标准设备(即,由一些软件定义的虚拟设备)被用于表示具有由特定标准形式定义的行为的系统中的物理设备的功能中的至少一些功能。标准设备具有状态或一组状态,可以接受命令,并且当其感测到其状态改变时可以发出事件。标准设备优选地被预定义在系统中,并且经由其相关联的标准表示实行物理设备的监测/控制。因为为了与物理设备相互作用,系统不需要知道关于物理设备的品牌或版本的任何事,所以这简化监测/控制。系统仅需要知道物理设备具有某些已知的、预定义的行为(由该标准形式或每个标准形式定义的-其中在一个物理设备中捕获多个标准形式)。因此,为了实施,在时间相关命令(由标准设备或由设备驱动程序)被发送到相关联的物理设备之前,(多个)标准设备可以被用于测试时间相关命令。
物理设备可以是具有单个功能的相对简单的设备(例如,仅能够打印的打印机)。物理设备可以与标准设备相关联,标准设备对应于定义物理设备的行为/能力的预定义标准形式。额外地或供选择地,物理设备可以更复杂,并且具有两个或更多功能(例如,能够打印、复印和扫描的机器)。因而,复杂的物理设备可以与一个或多个标准设备相关联,其中每个标准设备对应于定义物理设备的功能中的一个的标准形式。在实施例中,系统可以包括不止一个物理设备,并且每个物理设备可以与至少一个标准设备相关联。
先例模块可以包括存储至少一个预定义的标准设备的数据库,其中标准设备对应于预定义标准形式,标准形式为一种类型的物理设备定义一组最低的能力,其中至少一个物理设备与至少一个标准设备相关联,至少一个标准设备与物理设备的能力中的至少一些能力匹配。
优选地,至少一个处理器经配置用于通过以下测试系统操作:定义测试周期;为所述测试周期调整所述基准时钟;在所述测试周期中,将每个时间相关命令发送到与指定的物理设备相关联的至少一个标准设备,以模拟指定的物理设备的行为;以及输出关于指定的物理设备的模拟行为的任何问题。
系统还可以包括原型模块,该原型模块包括存储一个或多个合成设备的数据库,其中每个合成设备包括一个或多个标准设备和至少一个规则,至少一个规则定义一个或多个标准设备如何组合以形成合成设备。原型模块是第二设备抽象层/模块,并且可以包括一个或多个合成设备的数据库或储存器。合成设备是体现遵守特定的标准形式的其它设备(物理、标准或合成)的情报的虚拟设备(软件段)。可以通过将一个或多个标准设备与定义标准设备如何被组合以定义合成设备的整体行为/功能的提议/规则组合形成合成设备。可以通过将一个或多个标准设备与一个或多个合成设备组合,和/或通过组合两个或更多合成设备形成合成设备。用户可能够经由用户界面监测和/或控制合成设备。从而和间接地,用户可能够控制成为合成设备的基础的真实的物理设备。遵循相同的标准形式的所有的合成设备是等价的,因为这些合成设备具有相同的行为/功能。因此,标准形式定义合成设备的最低功能或一组功能/能力。除了模拟模块和/或先例模块之外或替代模拟模块和/或先例模块,可以使用原型模块,并且可以使用原型模块实行时间相关命令的测试。为了实施,在时间相关命令(由合成设备、标准设备或设备驱动程序)提供到相关联的物理设备之前,(多个)合成设备可以被用于测试时间相关命令。
至少一个处理器可以包括单个或共享功能的多个处理器。至少一个处理器经配置用于在测试周期期间,例如通过模拟基准时钟的加快,识别在物理设备、标准设备和/或合成设备的组内的突现行为。类似地,至少一个处理器还可以经配置用于在测试周期期间,例如通过模拟基准时钟的加快,测试在每个物理设备和相关联的标准设备之间的接口。在该情况下,至少一个处理器可以位于物理设备中。至少一个处理器可以经配置用于在测试周期内,测试在每个合成设备和每个相关联的标准设备之间的接口。在该情况下,至少一个处理器可以位于远离物理设备。
该处理器或每个处理器可以被实施在任何已知的合适的硬件(诸如微处理器、数字信号处理(DSP)芯片、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等)中。该处理器或每个处理器可以包括一个或多个处理核心,每个核心经配置用于独立地来实行。该处理器或每个处理器可以具有到总线的连接性,以执行指令,并且处理存储在例如存储器中的信息。
测试周期可以具有以天、周、月或年指定的持续时间。仅以示例的方式,预定周期可以是“五天”或“四年”(以覆盖闰年),或“二月到四月”,或“在连续4年内的二月到四月”(以覆盖闰年)等。额外地或供选择地,预定时间周期可以对应于至少一段时间长度(在至少一段时间长度内事件发生)。换句话说,测试周期包含时间相关指令中的至少一个(优选地多个)。例如,如果防盗警报器被编程用于在22:00和6:00之间开启,则可以测试其它设备(例如,安全相机、记录设备、将警告发送到安全服务的设备、将SMS发生到建筑物业主的设备等),以确保它们在相同的时间周期内如预期的工作,并且它们可以从防盗警报器接收输入,以采取任何必要的动作(例如,如果防盗警器报跳闸,则发送警告/SMS)。
系统还可以包括用户界面,以使得用户能够监测和/或控制至少一个物理设备。在实施例中,用户界面可以是被提供在计算设备或移动计算设备上的图形用户界面,并且可以参考基准时钟使用用户界面指定为物理设备中的每个物理设备指定的时间相关动作。
如上面所阐述的,先例模块可以包括存储多个预定义标准形式的数据库。在实施例中,至少一个处理器可以经配置用于实施对象能力模型,对象能力模型定义与每个标准设备和合成设备(当存在时)相关联的安全许可。优选地,至少一个处理器还可以经配置用于通过应用由对象能力模型设置的许可,控制(多个)物理设备。对象能力模型是定义准许给用户、每个标准设备和每个合成设备(如果使用)以访问标准、合成和物理设备的功能和数据的许可的计算机安全模型。
用软件或计算机代码定义模型,并且可以由系统实施模型。模型可以被用于仅准许访问可用的功能或数据中的一些,例如,功能可以被仅限于监测。不同的对象(设备)可以具有不同的许可级别,即,不同的一组有限的功能。对于额外的安全性,对象能力模型可以使用临时代理对象为与每个其它标准设备、合成设备或物理设备相关的每个用户、标准设备和/或合成设备存储和定义许可。如且当需要时,模型可以损坏临时代理对象中的一个或多个,这去除由用户、标准设备和/或合成设备对与该临时代理对象相关联的其它设备的访问。这对于消费类设备可是特别有用的,对于消费类设备,很难准许对设备和/或由设备产生的数据的访问。对象能力模型可以被用于相对于标准设备设置许可,使得一方可以立刻为由相同的标准设备(即,相同的标准设备遵循相同的标准形式)表示的所有物理设备设置许可。这使得能够快速地为大量的设备设置许可。
在实施例中,在指定的时间周期内,对象能力模型将许可准许给用户,并且准许给每个标准设备和/或每个合成设备,其中时间周期的到期自动地取消许可。指定的时间周期可以是在一周的特定的几天内、一天的特定几个小时或在特定长度的时间内(例如,一个月、一天等)。对于每个设备和/或用户,指定的时间周期可以是不同的。指定的时间周期可以是在特定事件持续时间内。例如,仅当已经触发资产中的防盗警报器时,可能准许对安全公司的安全摄像头视频馈送的访问,使得它们可以访问情况。为了隐私,一关掉或复位防盗警报器,就可以撤销许可。
在实施例中,用户是第三方,并且对象能力模型经配置用于将许可准许给第三方,许可限制第三方对功能和由标准设备、合成设备和物理设备产生的数据的访问。
在实施例中,相对于基准时钟,定义在指定的时间周期内为每个标准设备准许的许可。类似地,相对于基准时钟,定义在指定的时间周期内为每个合成设备准许的许可。
在实施例中,基准时钟与协调通用时间自动同步。
在实施例中,多个物理设备位于一个或多个位置处。一个或多个位置可以包括家或办公室(即,固定或静止的地方)和/或移动位置(即,移动或可改变的地方)。移动位置可以是车辆(例如,汽车、船、自行车)。在实施例中,多个物理设备包括移动设备或可穿戴设备,移动设备或可穿戴设备与人类或动物位于一起,或位于人类或动物上(例如,可穿戴技术、健康/保健监测器、智能宠物芯片、婴儿监测设备等)。
在实施例中,系统还包括集线器设备,多个物理设备耦接到集线器设备,用于在系统内互联。优选地,集线器设备是耦接到有线或无线互联网路由器的硬件设备。集线器设备可以位于接近多个物理设备的大多数的位置中,并且可以因此被认为是本地集线器设备。例如,在多个设备大体上位于用户家中的情况下,集线器设备可以是家用集线器设备。
先例模块可以位于本地集线器中或位于远程服务器中。类似地,原型模块可以位于本地集线器中或位于远程服务器中。用于对象能力模型的数据库可以被存储在本地集线器中或在远程服务器中。先例模块、原型模块和数据库可以一起位于本地集线器中、一起位于远程服务器中,或跨越本地集线器和远程服务器而分开。
集线器设备可以包括网络抽象模块。网络抽象模块可以经配置用于:通过一个或多个网络协议,(多个物理设备中的每个通信;以及从系统去除一个或多个网络协议的细节。因为组件没有分别需要在通信协议之间转化,所以网络抽象模块简化系统组件与物理设备通信且从物理设备接收数据的方式。
在实施例中,至少一个处理器包括位于先例模块中且将每个物理设备与标准设备相关联的处理器。至少一个处理器可以包括位于远程服务器中且经配置用于控制每个物理设备的另外的处理器。
在实施例中,至少一个处理器经配置用于响应于用户界面上的用户输入,控制每个物理设备。
本发明还提供了特别地在非暂时数据载体-诸如磁盘、微处理器、CD或DVD-ROM、可编程存储器诸如只读存储器(固件)上或在数据载体诸如光学或电信号载体上当运行时实施上面的方法中的任一个的携带处理器控制代码的载体。用于实施本发明的实施例的代码(和/或数据)可以包括以传统编程语言(解释或编译)诸如C或汇编码的源代码、对象代码或可执行的代码,用于设置或控制ASIC(专用集成电路)或FPGA(现场可编程门阵列)的代码,或用于硬件描述语言诸如VerilogTM或VHDL(超高速集成电路硬件描述语言)的代码。如技术人员将理解的,此类代码和/或数据可以被分布在彼此通信的多个耦接的组件之间。本发明可以包括控制器,控制器包括耦接到系统的部件中的一个或多个的微处理器、工作存储器和程序存储器。
附图说明
以示例的方式在附图中用图解法例示本发明,在附图中:
图1例示连接物理设备的现有技术系统;
图2示出根据本发明的实施例表示连接物理设备的系统的方框图;
图3示出图2中所示的集线器设备内的特征和能力的方框图;
图4是本发明的设备抽象的示意图;
图5a示出用于连接图2的系统中的物理设备的网络抽象的示意图;
图5b示出标准设备的示例的示意图;
图6描绘了由多个标准设备组成的合成设备的示例的示意图;
图7是概括在将物理设备连接到图2的系统中的过程中的示例步骤的流程图;
图8示出使用包括多个物理设备、标准设备和合成设备的图2的系统形成的连接环境的示例;以及
图9是概述测试中的步骤和用于图2的系统的控制阶段的流程图。
具体实施方式
术语表
App=术语“应用软件”的缩略词,并且是指经设计完成用于具体应用的操作的一个或多个计算机程序。在整个描述中使用的术语意指应用软件,并且包括“移动app”,即,经设计在智能电话、平板和其它移动设备上运行的计算机程序。
网关=能够在可以使用不同的通信协议的网络之间路由的网络节点、电信路由器或代理服务器。网关可以包括用于在不同的协议之间转化/映射的装置,以便使得使用特定的通信协议通过网络发送的数据能够被转换为适合于通过使用不同的通信协议的网络传输的不同的数据格式。术语还覆盖经配置用于实行网关的任务的计算机或计算机程序。在整个描述中,术语“网关”可交换地与术语“集线器”一起使用,其中集线器是可以包括实行网关的任务的计算机程序/软件的一块硬件。
云=经由互联网可访问的且取代本地服务器/计算机用于存储、管理和处理数据的远程服务器的网络。因为被描述为在“云”中或经由“云”可访问的本发明的特征同样可以在(远离物理设备的位置的)远程位置处的服务器中,所以在描述中术语可交换地与“远程服务器”一起使用。
设备=这被广泛用于计算机科学观,以意指具有状态、可以接受命令,且当其感测到真实世界中的改变或其自己的条件的改变时可以发出事件的实体。
物理设备=这被广泛用于意指已经在一块硬件中实施的设备,并且可以充当致动器(用于改变周围环境的状态)或传感器(用于检测周围环境的状态)。术语还被用于指具有与集线器/网关通信的能力的消费类电子商品和电子电器。设备并不限于这些商品,已经修改这些商品以包括标识符。相反,设备可以是具有经由以下示例协议通信的能力的任何商品:Wi-Fi、ZigBee、Zwave、IPv4、IPv6等。
标准形式=这被广泛用于计算机科学观中以意指表示具有唯一的表示的对象的‘正常’、‘标准’或‘规范’方式。标准表示的减少意指如果两个对象(例如,物理设备)的标准表示被测试且确定为等价的,则两个对象(例如,物理设备)可以被视为等价的。标准形式可以表示与设备相关联的行为,并且可以包括一系列(可自动化的)测试,以确定设备是否如预期的进行表现。因而,标准形式使得能够进行第一设备抽象级别,因为标准形式表示设备的行为,但不包括关于如何实现行为的任何细节。应当理解,设备可以具有不止一个行为,并且因此物理设备可以包括多个标准形式的行为。
标准设备=表示遵守特定标准形式的虚拟设备的软件。遵循相同的标准形式的所有标准设备是等价的,因为它们具有相同的行为/功能。因此,标准设备定义标准设备相关联的真实的物理设备的最低功能或一组功能/能力。标准设备是真实的物理设备的抽象版本,因为标准设备表示设备的行为(或一组行为),但不包括关于如何实现行为的任何细节。标准设备具有状态或一组状态,可以接受命令,且当其感测到其状态的改变时可以发出事件。
合成设备=体现遵守特定标准形式的设备(真实的或合成的)的情报的软件。合成设备是组成的,因为被用于在它们之间交换信息和控制的(在编程术语中的)语法与各个设备的功能或行为的功能正交。更具体地说,术语被用于意指可以通过将一个或多个标准设备与定义合成设备如何表现/起作用的提议/规则组合形成的虚拟设备。合成设备提供第二设备抽象级别。遵循相同的标准形式的所有合成设备是等价的,因为它们具有相同的行为/功能。因此,标准形式定义合成设备的最低功能或一组功能/能力。
设备抽象=术语被广泛用于意指可以由标准形式定义的(物理)设备,并且因而由相同的标准形式定义的这些被视为等价的。设备抽象意指由相同的标准形式定义的所有物理设备如由该标准形式定义的进行表现,即使物理设备自身在如何实现/实施行为方面变化。
抽象模块=用于隐藏设备(物理的或标准的)的实施细节的模块,使得由行为或一组功能描述设备。术语可以可交换地与“抽象级别/层”一起使用。
先例模块=包含标准设备且因此通过将物理设备减少为由标准形式定义的抽象/虚拟标准设备隐藏特定的物理设备的技术规格的模块。术语可交换地与“第一设备抽象模块”一起使用,因为先例模块提供来自物理设备的第一抽象级别。术语还可以可交换地与“第一设备抽象级别/层”一起使用。模块可以是硬件或软件模块,并且对于每个连接环境可以本地提供模块,或模块可以被提供在远程位置中。
原型模块=包含合成设备的模块。术语可交换地与“第二设备抽象模块”一起使用,并且可以可交换地与“第二设备抽象级别/层”一起使用。模块可以是硬件或软件模块,并且对于每个连接环境可以本地提供模块,或模块可以被提供在远程位置中。
对象能力模型=将授权或许可(“能力”)附接到希望从对象访问服务或数据/信息的实体的基于软件的计算机安全模型。能力指定实体可以从或相对于对象访问哪些服务/数据。模型使用能力作为提供对对象(或它们的服务、数据)的授权和控制访问的主要手段。在上下文中,模型被用于定义不同方(用户/设备)可以具有用于系统中的设备(物理的、标准的和/或合成的)的许可,使得控制对与设备相关联的控制或数据的访问。
位置=这是指包含通过系统互联和协调的物理设备的环境。环境/位置包括静止位置或固定位置(例如,家、房间或家内的房间、办公室、工作场所等)和移动位置(例如,在车辆中或在车辆上)。如果物理设备是移动设备或可穿戴的设备(例如,智能手表、健康监测器、智能服装、保健/活动监测器、宠物监测器等),位置还可以与人类或动物在一起或在人类或动物上。
时钟=这大体上是指在数字电路和微处理器中(诸如通常在很多消费类电子商品(物理设备)内找到的电路中)使用的时钟发生器。时钟发生器产生时钟信号,并且电路可以使用时钟信号使电路的不同部分同步。
时钟同步=该术语是指当不同电子设备的内部时钟不同时引起的问题。甚至当初始准确地设置时钟时,在一些时间之后时钟可以不同,并且因而时钟不再准确或同步。
基准时钟=系统内或系统外部由系统的所有组件使用用于同步和事件调度的虚拟时钟。术语包含为包含调用函数以从外部时钟获得时间的软件或代码段的基准时钟。
时钟偏移=物理设备内的时钟和基准时钟上的时间之间的时间差。
标准时钟=被提供在标准设备内的虚拟的基准时钟。
合成时钟=被提供在合成设备内的虚拟的基准时钟。
双重测试=为了测试目的,用于代替真实的对象使用的任何种类的假对象的通用术语。
处理器=用于经由软件、硬件、固件或软件和/或固件和/或硬件的组合实施所描述的过程的通用术语。可以以任何已知的合适的硬件(诸如微处理器、数字信号处理(DSP)芯片、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等)实施处理器。处理器可以包括一个或多个处理核心,每个核心经配置用于独立地实行。处理器具有到总线的连接性,以执行存储在例如存储器中的指令和过程信息。
描述
图1例示用于经由单个平台连接家或办公室中的物理设备和电器且使家或办公室中的物理设备和电器自动化的现有技术系统10。系统可以包括用户设备诸如可以由用户使用以远程监测和/或控制物理设备的智能电话18。可以经由在智能电话上运行的或由智能电话可访问的用户界面实现监测和控制。系统包括一个或多个物理设备12,一个或多个物理设备12可以是例如消费类电子商品、智能仪表、智能传感器、家庭监测设备、照明设备、供暖设备等。因而,一个或多个物理设备12可以是不同的类型,并且可以由不同的制造商来制作一个或多个物理设备12。还可以由不同的制造商将另外级别的复杂度添加到物理设备和用户设备之间的通信和数据传送中,制作物理设备12和用于监测/控制物理设备的用户设备18。
所例示的系统使得能够通过家用集线器14进行双向物理设备控制。连接到系统中的所有物理设备可以连接到集线器设备14(硬件组件),使得家/办公室中的物理设备可以连接到互联网、到经由云可访问的服务或经由互联网到其它设备。大体上通过使用能够在使用不同的通信协议的网络之间路由数据的网关(未示出)实现该连接性。网关可以是经由集线器可访问的,或集线器14自身可以包含实行网关的任务的计算机程序或软件。网关在互联网协议和不同的通信协议(例如,用于创建个人局域网的ZigBee(RTM)协议)之间转化。
集线器例如通过连接到宽带互联网路由器访问互联网(并且因此,提供一种用于物理设备连接到互联网的方式)。由此,物理设备12通过有线连接或无线连接(经由集线器),连接到基于云的平台16,并且平台16将设备、应用程序和分析软件链接在一起。平台16可以使得设备和数据经由单个用户界面是可访问的。平台16可以包括将‘非智能的’设备变成聪明的、智能设备的数据分析软件。用户可以使用他们的智能电话18(例如,经由软件应用程序)监测/控制他们的家用物理设备12。例如,消费者可以在他们已经离开他们的家之后,使用app远程关掉物理供暖设备,使得能量不会浪费在加热空家上。由此,平台提供给用户操作物理设备而不用物理上靠近物理设备的方便的方式。
集线器14还可以本地起作用以将规则或控制应用于家内的物理设备12,即使家是离线的。由家用集线器实行的功能通常意指集线器具有足够小的占地面积,使得其可以甚至被嵌入在现有网关设备内,现有网关设备诸如宽带路由器和媒体机顶盒。然而,因为物理设备和家庭网络能力增长,所以可以优选地将物理设备直接连接到互联网,而不需要集线器。可以通过在云中运行设备规则,实现将多个物理设备连接到系统中。因为通过经由互联网提供服务基于云的计算是动态可扩展的,所以基于云的计算是有利的。用户能够访问服务,而不用云的技术方面的任何知识。例如,用户可以经由他们的web浏览器访问服务,其中由基于云的服务提供服务,并且被用于提供web服务的软件和任何数据都被存储在远离用户的云中。然而,现有技术系统的平台16可不能应付从使用多个不同的通信协议且具有不同的技术规格的多个(例如,几十万到几千万)不同的物理设备接收的连接的请求。可以不同地配置相同设备的不同版本,使得平台需要能够以不同的方式(即使仅稍微不同)与它们通信。仅以示例的方式,平台可需要在由不同的制造商(例如,黑莓(RTM)、苹果(RTM)、松下(RTM)等)制作的智能电话、由每个制造商的智能电话的不同模型(例如,黑莓Z10(RTM)、黑莓Q10(RTM)等)和智能电话的每个模型的不同的版本(例如,2G、3G、4G版本)之间进行区分,使得平台可以正确地与物理设备通信。平台16可以需要定期更新,以了解不同类型的物理设备、不同模型和版本的动态,这是效率低下且耗时的。类似地,平台可需要在由不同的制造商(例如,霍尼韦尔(Honeywell)、德雷顿(Drayton)、赛乐(Salus))等)制作的恒温器之间进行区分。
该现有技术系统的另外的缺点是使系统适应于连接新的物理设备的困难,与连接到系统的现有物理设备的任一个相比新的物理设备可具有不同的技术规格。例如,系统中的现有物理设备可以包括以摄氏度(℃)为单位感测资产中的温度的温度传感器或恒温器。使系统适应于连接以华氏度(℉)为单位感测温度的物理温度传感器或恒温器可以要求在系统各级处作出改变,以确保系统组件能够正确地彼此通信,并且确保由系统组件理解新的测量单位。由于改变可要求工程师和软件开发者改编在系统各级处的协议和计算机代码,所以该相对简单的改变可以要求大量的工时来实施。
还有,通常,消费类电子商品常常包括包括时钟发生器的微处理器或电子电路。物理设备12的内部时钟11大体上被用于使电路的不同部分同步。然而,甚至当初始准确地设置时钟时,在一些时间之后,物理设备的时钟11可以不同(例如,由于时钟偏移),并且因而不再准确或同步。这可以使得很难协调物理设备。用于确保物理设备的时钟同步的一个方式是用外部基准时钟15使每个物理设备时钟同步。例如,网络时间协议(NTP)可以被用于在几毫秒的协调通用时间内使每个物理设备12同步。NTP往往可以将内部时钟的时间维持为高水平的准确性,但是该同步方法要求每个物理设备周期性地经由互联网检查其内部时钟,并且使其内部时钟同步。因此,该同步方法的缺点是其涉及带宽使用效率低,特别是在包含连接到互联网的大量设备的资产中。还有,一些物理设备科缺乏查询基准时钟和相应地更新其内部时钟所要求的处理能力或电路。
图2例示根据本发明的实施例用于连接物理设备以创建“连接环境”的系统。系统20通过从平台去除所有知识简化系统,管理多个物理设备、多个物理设备类型和多个网络协议的复杂度。在系统20中,平台从物理设备22a、物理设备22b、物理设备22c接收‘简单’数据,并且不需要理解关于物理设备(数据来源于物理设备)的任何事。物理设备22a、物理设备22b、物理设备22c每个可以包括内部时钟21。类似地,平台不需要知道关于用户侧设备39a、用户侧设备39b、用户侧设备39c和/或可以被用于监测/控制(多个)设备22a、设备22b、设备22c的(多个)app 38的任何事。将理解三个物理设备和用户侧设备简单地为任意选择以便于说明。任何数量的设备可以在系统中互连。
用户可以使用用户侧控制设备诸如平板计算机39a、智能电话39b或PC或膝上型电脑39c或任何其它合适的装置,监测/控制物理设备22a、物理设备22b、物理设备22c,并且在实施例中,经由用户界面诸如在控制设备上运行的或经由控制设备可访问的app 38实行监测/控制。供选择地,可以在其他地方提供用户界面,并且用户界面可以经由控制设备(例如,经由控制设备上运行的web浏览器)是可访问的。用户侧控制设备连接到网关37,由此它们可以彼此互连和/或与系统内的移动设备互连。类似地,移动控制设备(诸如智能电话39b)连接到移动网关,以使用移动通信网络在系统20内互连。系统20包括可能够与控制设备39a、控制设备39b、控制设备39c和/或经由控制设备、经由应用程序编程接口(API)层36可访问的(多个)app 38通信的平台后端32。API层指定app 38的软件组件和平台如何彼此通信,并且使得数据能够在其它方面不同的应用程序之间共享。API层可以耦接到网关/移动网关37或被提供作为在平台后端32和网关37之间的系统内单独的不同的模块。
在图2的系统中,从系统中去除关于控制设备和物理设备22a、物理设备22b、物理设备22c的实施细节的具体知识,这简化系统的创建和管理。这通过优选地与对象能量模型组合在物理设备22a、物理设备22b、物理设备22c和控制设备39a、控制设备39b、控制设备39c或用于监测/控制物理设备22a、物理设备22b、物理设备22c的app 38之间提供两个抽象层来实现。用于实施系统(即,软件或硬件架构)的平台可以被提供在集线器设备28中或在云/远程服务器中。额外地或供选择地,平台的功能可以分布在集线器和云/(多个)服务器之间。物理设备可以通过集线器连接到系统中或直接连接到系统中,如下面更详细阐明的。
广义地说,并且如术语表部分所阐明的,抽象层或级别是在计算机科学中使用以隐藏设备的实施细节的技术,使得由设备的行为或一组行为/功能描述设备(例如,物理设备)。因而,抽象技术可以基于设备的行为识别设备为特定的类型,并且这使得系统中的其它组件能够与设备通信,而不需要知道设备的任何具体细节(例如,技术规格、型号、版本号)。很多现代操作系统使用抽象层或抽象层体系结构。例如,为了对在应用级别处的设备进行读取,程序可以调用函数打开设备(例如,真实设备诸如终端,或虚拟设备诸如网络端口或文件)。设备的物理特性通过操作系统调解,并且操作系统提供允许程序员从设备读取字节/将字节写入到设备的抽象接口。然后操作系统实行读取字节流且将字节流写入到设备所需要的实际转化。因此,在该示例中,在设备和操作系统之间存在一个抽象层。
第一抽象层或模块(也称为“先例模块”)被用于使在系统内互连的物理设备抽象化。在实施例中,系统可以包括包含至少一个标准形式(下面更详细阐明的)的数据库、存储设备或其它合适的存储装置。额外地或供选择地,系统可以包括多个标准形式。在图2中所示的实施例中,包括标准形式的数据库被示为集线器内的第一抽象层的一部分。在该情况下,由于标准形式被存储在第一集线器和第二集线器内的第一抽象层内,所以耦接到第一集线器的一个或多个物理设备可能够与耦接到第二集线器的一个或多个物理设备互连,而不需要平台后端32。然而,标准形式的列表可以集中存储在平台后端32内、在位于系统中的其他地方的数据库34内,或在云或远程服务器中的其他地方。在该情况下,根据需要,第一抽象层可以检索远程存储的标准形式的实例(本地副本)和/或将远程存储的标准形式的实例(本地副本)存储在第一抽象层内。可以由第一抽象层使用(多个)标准形式,以除去物理设备(或每个物理设备,如果存在多个物理设备)的实施细节,使得连接到系统的物理设备22a、物理设备22b、物理设备22c或物理设备22a、物理设备22b、物理设备22c中的每个经由它们的行为/功能来定义。
如在术语表中所阐明的,标准形式是在对象的行为(或一组最低行为或一组功能)方面对象(例如,物理设备)的表示,并且包含一系列可自动化的测试,以确定对象是否遵守标准形式的(多个)行为。例如,标准形式可以将特定类型的对象的行为定义为“测量和调整温度”。处理器可以经配置用于针对标准形式测试特定的物理设备,以确定物理设备是否遵守标准形式的定义。在示例中,处理器可以经配置用于检查物理设备是否可以(i)测量温度,以及(ii)调整温度。物理数字温度计或温度传感器可以测量温度,但不能够调整温度,并且因此,处理器将确定物理设备不能通过该特定标准形式的测试。因为恒温器既可以感测温度又可以调整温度,所以恒温器可以通过测试。
额外地或供选择地,物理对象可以具有多个不同的行为,并且这些可以通过一个或多个标准形式描述。例如,办公室打印机通常也能够扫描文档和影印文档。因此,可以由表示“打印”的标准形式、表示“扫描”的另一个标准形式和表示“影印”的第三标准形式描述物理打印机行为。因此,物理设备的行为中的至少一些行为可以被映射到单个标准形式,使得由不止一个标准形式描述物理设备。
处理器(或其它系统组件)可以经配置用于提供标准设备(即,由一些软件定义的虚拟设备)的本地实例,标准设备(即,由一些软件定义的虚拟设备)的本地实例表示系统中的物理设备,并且具有由标准形式定义的行为。对于具有不同行为的复杂的物理设备,可以针对描述物理设备行为的每个标准形式提供标准设备。标准设备具有状态或一组状态,可以接受命令,并且当其感测到其状态的改变时可以发出事件。优选地,在系统中对标准设备进行预定义,并且数据库或标准设备的储存器可以被提供在云/远程服务器中。第一设备抽象模块处理器可以从标准设备的中心数据库/储存器检索标准设备的副本,并且将本地副本存储在第一设备抽象模块内,用于未来使用。因为第一抽象模块可以被用于存储用于连接到它的所有物理设备的标准设备来使与集线器和连接的物理设备的通信和在集线器和连接的物理设备之间的数据传送加速,所以如果第一抽象模块被提供在集线器28内,则这可以是优选的。在示例情境中,处理器可以将标准恒温器提供到第一设备抽象模块,第一设备抽象模块表示物理恒温器,并且具有由相关的标准形式定义的行为。标准恒温器可以由系统使用来监测和/或控制相关联的物理恒温器。因此,因为为了与物理恒温器相互作用,系统不需要知道关于物理恒温器的品牌或版本的任何事,所以监测/控制被简化。系统仅需要知道物理恒温器具有某些预定义的行为。
标准形式可以优选地使用特定的测量单位制(诸如国际单位制(或SI单位))定义设备行为。例如,与测量温度相关联的标准形式可以指定以摄氏度(℃)为单位测量温度。在系统内使用标准测量单位制或常见测量单位制可以使得能够监测和/或控制物理设备,而不需要知道物理设备中使用的精确的测量单位。可以配置与物理设备相关联的设备驱动程序(在下面更详细阐明的),使得其可以使用标准测量单位制接收命令,并且相应地在物理设备中实施命令。设备驱动程序可能够将标准测量单位制映射到由物理设备使用的测量(例如,从℃到℉),使得平台或系统自身不需要知道由(多个)物理设备使用哪种测量单位。
换句话说,标准形式的行为(或一组行为)是被提供作为用于设备应该如何表现的一系列可自动化的测试的规格。标准形式的范围将包含设备的‘正常’行为和可以如何监测和管理设备的‘正常’行为,使得外部实体(往往合成设备,如下面阐明的)可以理解符合具体标准形式的任何设备的状态。可以为物理设备、标准设备和/或合成设备定义标准形式。在上面的示例中,如果不同品牌的物理恒温器可以既测量温度又控制温度,则不同品牌的物理恒温器将遵循(多个)相同的标准形式。因此,系统可以使用该物理设备抽象来监测和管理以相同的方式遵循(多个)相同的标准形式的所有物理恒温器。这与不得不使系统适应于物理设备之间的所有变化相比更简单。还有,标准形式可以使得能够在与设备(物理的或标准的或合成的)相互作用的任何系统组件上实行测试,以检查当与设备相互作用时组件正确地工作。可以分别或共同实行测试,因此使得能够在软件中测试大量设备类型的实例的组合,而没有设置具有物理设备部的真实环境的时间和资源约束。标准形式使得‘向下测试’确认新的物理设备支持抽象,并且使得‘向上测试’确认与支持具体标准形式的(标准)设备相互作用的任何事如预期地进行表现。
转回到图2,系统20提供平台以将消费类电子商品(即,物理设备22a、物理设备22b、物理设备22c)和控制设备(诸如智能电话、平板电脑和PC(和/或在控制设备上运行的app 38))连接在一起。虽然图2示出多个物理设备22,但是应当理解,至少一个物理设备可以被连接到用于控制/监测的系统中。用于实施系统(即,软件或硬件架构)的平台可以被提供在本地(例如,家用)集线器设备28中或在云/(多个)远程服务器中。额外地或供选择地,平台的功能可以被分布在集线器28和云/远程服务器之间,这使得在硬件集线器自身中能够有更强的灵活性。(如果平台被提供在云/(多个)远程服务器中,则这可以去除物理设备22a、物理设备22b、物理设备22c经由集线器连接到平台的需要。如图2中所示,物理设备22a、物理设备22b、物理设备22c可能够经由网关30直接连接到平台。分布式平台或仅远程平台可以使得位于移动位置中的(例如,在车辆中的、或与人一起的/在人上的)、或为移动物理设备的物理设备连接到系统,以至于它们可不需要经由位于特定地方中的物理硬件集线器28进行连接。例如,物理设备可以是在智能电话中的传感器(例如,加速度计、陀螺仪、气压计等)。在实施例中,物理传感器可以经由智能电话自身的互联网能力而不是经由集线器设备连接到用于控制/监测的系统中。
如图2所示,集线器28位于(多个)物理设备22a、物理设备22b、物理设备22c和云/(多个)远程服务器之间。集线器28通常通过在互联网协议和由物理设备使用的多个不同的通信协议之间转化,使得家/办公室中的低功率物理设备能够与平台连接。额外地,集线器28可以连接到简单的设备,该简单的设备可不具有连接到互联网的装置(或不需要连接到互联网)。简单的物理设备可以例如是声控的水壶、或自身不具有连接到互联网的能力但确实通过耦接到可以连接到互联网的‘基站’连接到互联网的健身追踪器。一旦简单的物理设备连接到系统中,就可以由系统20控制或监测简单的物理设备,而一般地不要求连接到互联网以使得它们能够被操作。因此,集线器28可以是可配置的,以提供这样的‘基站’的功能,来使得从健身追踪器接收的数据能够被上传到网站等。因而集线器可能够替换用于不同的物理设备的多个‘基站’的需要,这可以促进连接环境的建立。在另一个示例中,可以由集线器监测简单的物理设备的效率或能量使用(例如,使得如果物理设备没有正确地操作或没有尽可能的高效,则告知用户),但可能不能使用平台/系统控制简单的物理设备自身。换句话说,对于连接到系统的这样的简单的物理设备,数据可以在一个方向上流动,即,仅从设备到系统。对于其它物理设备,数据可以在两个方向上流动。
集线器28可以包括至少网络抽象层或模块24,这使得任何类型的一个或多个物理设备能够使用任何连接装置(例如,ZigBee通信协议、用于家庭自动化的Z-wave无线通信协议、IPv4和IPv6互联网协议、应用协议栈等)连接到集线器28,而不需要系统的其余部分知道准确的通信意味着正使用物理设备连接到集线器。额外地或供选择地,网络抽象层24可以被提供为在一个或多个物理设备(特别地对于为移动的且没有附着的或永久地位于一个位置中的这些物理设备(例如,可穿戴技术))和网关30之间在系统中的其他地方的单独的模块。无论网络抽象层被提供在系统内的哪个地方,网络抽象层都使得一个或多个物理设备22a、物理设备22b、物理设备22c能够连接到平台,而不需要物理设备使用相同的通信协议,以便连接到系统中。这克服了设备的制造商在他们的设备中采用单个常见通信协议的需要,并且因此,网络抽象层24提供实现家/办公室中的设备的连接性的无线电或协议栈。还用,系统组件可以从物理设备接收数据,并且将指令/数据发送到物理设备,而不需要在不同的通信格式/协议之间转化。这可以使得能够由系统对设备的监测和控制被简化。
图5a示出用于将物理设备连接到图2的系统的网络抽象(和设备抽象)的示意图。物理设备可以经由不同的通信协议52(诸如ZigBee、Wi-Fi等)通信。网络抽象层被提供在物理设备和被用于表示系统中的物理设备的标准设备50之间。这里所示的标准设备50的示例是运动传感器、相机、锁、宠物门等。在网络层处的协议抽象实现使用不同的通信协议52的不同类型的设备连接到系统中。(当前存在70个到100个不同的网络协议)。网络抽象层将由物理设备接收的数据转化成适合于标准设备50/平台的特定的格式。类似地,相对于标准设备50由系统提供的任何控制指令经由网络抽象层被转递到对应的物理设备,这使指令/数据被格式化为适合于物理设备的格式。因此,数据可以在系统/标准设备和物理设备之间流动,而不需要知道系统或物理设备正使用哪些通信协议。有利地,网络抽象避免不同的物理设备类型和网络协议52的组合影响。物理设备的功能基本上从物理设备的连接性去耦合。通过使真实的物理设备抽象化为具有状态表的标准设备50实现设备抽象(如更早所阐明的),由此使得新的物理设备更容易地被合并到系统中,并且使得能够写出更复杂的‘融合’提议。
返回到图2,系统20可以包括第二设备抽象层/模块(也被称为“原型模块”)。第二设备抽象模块可以被提供在平台后端32内,或供选择地,可以被提供在集线器28中,或分布在集线器和云/远程服务器之间。第二设备抽象模块可以包括数据库、储存器或用于存储多个合成设备的合适的存储装置。合成设备是体现用于遵守特定的标准形式的其它设备(物理的、标准的或合成的)的情报的虚拟设备(软件段)。可以通过将一个或多个标准设备与定义标准设备如何组合以定义合成设备的整体行为/功能的提议/规则组合,形成合成设备。可以通过将一个或多个标准设备与一个或多个合成设备组合,和/或通过组合两个或更多合成设备,形成合成设备。遵循相同的标准形式的所有合成设备是等价的,因为所有合成设备具有相同的行为/功能。因此,标准形式定义合成设备的最低功能或一组功能/能力。
用户可能够经由他们的用户端控制设备39a、用户端控制设备39b、用户端控制设备39c或app 38监测和/或控制合成设备。从而且间接地,用户可能够控制成为合成设备的基础的真实的物理设备。图6中示出合成设备的示例,并且下面更详细地描述了合成设备的示例。由于合成设备被存储在第一集线器和第二集线器内的第二抽象模块内,所以如果第二设备抽象模块被提供在集线器内,则耦接到第一集线器的一个或多个物理设备可能够与耦接到第二集线器的一个或多个物理设备互连,而不需要平台后端32。
优选地,平台后端32可以经由云是可访问的,并且可以包括将设备、应用程序和分析软件链接在一起所必须的软件。平台后端32可以包括一个或多个数据库或存储媒体34,以存储数据分析软件、至少一个预定义标准形式、至少一个预定义的标准设备,和/或(预定义)合成设备。后端可以包括服务器、处理器、软件、集线器管理器、规则管理器等。根据在系统内如何存储和管理数据,(多个)数据库可以包括SQL或NoSQL数据库。(多个)数据库还可以被用于存储对象能力模型。
一般来说,对象能力模型是基于软件的计算机安全模型,基于软件的计算机安全模型将授权或许可(“能力”)附接到希望访问来自对象的服务或数据/信息的实体。能力指定实体可以从或相对于对象访问什么服务/数据。模型使用能力作为提供对对象(或它们的服务/数据)的授权和控制访问的主要手段。在本发明的上下文中,在实施例中,模型可以被用于定义不同方可以与系统中的设备(物理的、标准的和/或合成的)有关的许可,使得控制对与设备相关联的控制或数据的访问。更具体地说,在对象能力模型中,如果程序引用关于对象的操作符/方法,则暗示程序有权来使用关于对象的操作符/方法。程序不能看见或访问不允许被看见/访问的事物(例如,数据)。模型可以去除在运行时间检查特定的个体/程序是否被允许做事情的需要。下面更详细地描述了对象能力模型。
图3示出图2的集线器28的示意图。如先前所提到的,集线器28可以包括网络抽象模块24,以去除由连接到集线器28的一个或多个物理设备使用的通信协议的具体细节。这使得其它系统组件能够与物理设备通信,而不需要以用于每个协议的特定的(和不同的)格式使从物理设备接收的数据和发送到物理设备的数据格式化。由网络抽象模块24实行转化。集线器28还可以包括处理器、存储器、非易失性存储器和存储装置。集线器28还可以包括用于为集线器提供(多个)控制程序的固件,以及在每个应用程序的基础上用于管理集线器中的存储器和处理器使用且给予集线器中的存储器和处理器使用优先权的(多个)资源管理器。
如图3中所示的,集线器28还可以包括许多特征,在实施例中,许多特征可以被提供在平台后端中:
·Java虚拟机(JVM)、可以解释用于集线器的处理器的Java代码的过程虚拟机,使得处理器可以解释在Java编程语言中的提供的任何指令。使用Java的优点是可以开发软件,而不用重写或重新编译用于不同平台的软件代码,以至于JVM可以解释用于软件在其上运行的每个平台的独特性的字节代码。系统的实施例可以以用户没有察觉到计算机代码在哪里运行且用户不受计算机代码在哪里运行的影响的方式,将情报和协调分布在连接环境和平台之间。这可以通过使用用于集线器和云服务两者的相同的编程语言(例如,Java(RTM)语言)且由网络和设备的抽象来实现,网络和设备的抽象一起允许应用逻辑在家用(即,在固定本地位置中)或在云中运行而不用改变。这可以巨大地减轻软件开发,且提供一致的用户体验。然而,系统不限于仅接收基于Java的指令。系统可以经配置用于使用可以要求额外的或供选择的虚拟机完成相同的解释功能的额外的或供选择的编程语言工作;
·规则引擎-这可以包含指定集线器28可以能够相对于物理设备实行的动作的规则或政策。示例规则可以是,“假设水壶和电表连接到系统,如果水壶接通,并且如果电表指示功耗高于阈值水平,则记录由水壶使用的总能量”。规则引擎可以被提供作为第二设备抽象模块/层;
·设备抽象模块-第一设备抽象模块和第二设备抽象模块中的一个或两个;
·存储在集线器内的数据库或存储装置内的标准形式,和/或标准设备和合成设备的实例;
·消息传递层-这可以包括用于在应用程序之间输送消息的消息总线。消息传递层可以使用协议诸如高级消息队列协议(AMQP),以优选地与用于至少实施消息传递协议的消息代理软件(诸如但不限于RabbitMQ)组合控制消息如何在消息提供者(集线器)和客户端(在云/远程服务器中运行的软件应用程序)之间输送。消息传递层可以使得集线器28能够与在平台后端32中运行的软件通信;
·(标准)数据流-特别地在英国使用的一种类型的宽带网络连接。
设备抽象
如上面所提到的,系统不包含连接到系统的一个或多个物理设备的任何具体技术细节,这可以使得能够简化平台的创建和管理。这通过优选地与对象能力模型组合,在设备和用于监测/控制设备的应用程序之间提供两个抽象层来实现。图4示出两个抽象层的示意图。第一设备抽象层在真实的物理设备40和虚拟的标准设备42之间转化。如图所示,在物理设备和标准设备之间存在双向通信。例如,可以将数据从物理设备发送到标准设备,并且控制从标准设备到物理设备的命令。
第一设备抽象层可以被提供或在集线器中或在云中。标准设备42定义真实的物理设备40(标准设备42与真实的物理设备40相关联)的行为。标准设备42具有状态或一组状态(例如,“开”、“关”等),可以接受命令,并且当感测在它们的状态中的改变时可以发出事件。还可以查询标准设备的(多个)状态。第一设备抽象层可以使得用户能够将它们的家/办公室中的设备连接在一起,而不用担忧它们的设备的精确的技术规格,由此显著地使设备连接性和“连接环境”的创建变得容易。类似地,用于监测/控制物理设备的平台和软件应用程序的开发者可不必写适合于物理设备的不同技术规格的代码。作为替代,他们可以开发用于标准设备的软件和计算机程序,用于标准设备的软件和计算机程序不包含真实世界设备的细节。抽象模块可以实行必要的修改,以使得通用软件能够与物理设备相互作用。
系统还可以通过提供第二设备抽象层采取抽象。第二设备抽象层在标准设备42和合成设备44之间转化。如图所示,在合成设备和标准设备之间存在双向通信。合成设备44可以远离物理设备和/或集线器,即,它们可以经由云是可访问的。供选择地,合成设备的本地实例可以被提供在集线器中。之后阐明合成设备的概念。
对象能力模型
平台后端还可以包括用于实施对象能力模型的装置。对象能力模型是计算机安全模型,计算机安全模型包括通过“能力”彼此连接的“对象”的集合,且使用能力作为提供对对象的授权和控制访问的主要手段。对象能力模型可以被提供用于系统中的标准设备和/或合成设备中的每个。模型使得能够为每个设备分别定义用于用户和/或标准设备/合成设备自身的许可。模型还可以确定用于实施系统内的模型的编程方法和编程语言。
模型可以被用于准许由另一个设备访问一个设备。例如,由多个标准设备组成的合成设备可以被准许访问标准设备的数据/输出,但不准许对标准设备的设置。在另一个示例中,标准安全系统可以被准许开启标准安全相机(并且由此,标准安全相机与其相关联的物理安全相机)或使标准安全相机(并且由此,标准安全相机与其相关联的物理安全相机)复位的权利,但不具有开启/关掉记录由物理相机捕获的图像的标准(和物理)记录设备的权利。
对于有限的功能(例如,仅监测)且在有限的时间段内,模型可以被用于准许对用户的访问。不同的对象可以具有不同的许可。对于额外的安全性,对象能力模型可以使用临时代理对象以存储和定义与对象有关的许可。临时代理模式是写能够提供可撤销的能力的软件的设计模式。临时代理对象给与设备有关的用户/第三方可撤销的权利。如且当必要时,模型可以损坏临时代理对象,这去除对设备的访问。这对于消费类设备可以是特别有用的,对于消费类设备很难准许对设备和/或由设备产生的数据的访问。例如,可以由患者的医生给患者真实的健康监测,这使得医生能够远程监测她的患者的健康。然而,患者可不能够访问由健康监测器自身收集的数据。对象能力模型中临时代理对象的使用可以使得医生能够准许患者访问来自健康监测器的数据的许可,但不准许对数据进行篡改或改变设备设置。可以参考与真实世界健康监测器相关联的标准健康监测器(或一个或多个标准设备)提供对象能力模型。这可以使得医生能够通过简单地定义标准健康监测器的许可,将相同级别的许可提供给具有健康监测器的所有她的患者。符合标准健康监测器的所有真实世界健康监测器的许可将以相同的方式进行自动配置。
将物理设备连接到平台
如先前所提到的,标准形式定义行为和测试,以确定物理设备(或合成设备)是否符合所定义的行为。标准形式可以被存储在系统中,并且当新的物理设备试图连接到系统时,可以要求标准形式。标准形式可以被提供在第一设备抽象层内,或可以被提供在其他地方,例如,存储在平台后端32中。图7示出例示当新的物理设备试图连接到系统时由图2的系统采取的示例步骤的流程图。流程图示出系统如何通过浏览标准形式测试识别尝试连接到系统的物理设备的类型。
当接通时,新的物理设备可以自动试图连接到系统,或用户可以采取步骤来将设备连接到系统。物理设备可以试图直接通过网关或经由家用集线器设备连接到系统,如先前所概述的。无论使用什么方法,位于一个或多个物理设备和系统/平台之间的网络抽象模块识别或辨识新的物理设备存在于环境中,并且试图连接到系统(S70)。网络抽象模块可以包括模块内经配置用于实行以下步骤以识别物理设备的处理器或微处理器。网络抽象模块(处理器)将消息传输到新的物理设备,让新的物理设备识别自身(S72)。新的物理设备将具有一些信息(例如,标识符或ID号)的消息发送回到网络抽象设备以帮助识别设备(S74)。例如,通过USB连接连接到集线器的物理设备可以包含两个ID号:识别物理设备的销售商或制造商的销售商ID;以及识别由销售商制作的具体设备(模型、类型等)的设备ID。以不同的方式连接到网络抽象模块的物理设备可以传输相同的或类似的识别信息。网络抽象模块使用该识别信息以获得适当的设备驱动程序,以便与新的物理设备通信(S76)。设备驱动程序是操作/控制附接到计算机/计算系统的物理设备的软件段。驱动程序提供到物理设备的软件接口,使得计算机程序可以访问物理设备的硬件功能,而不需要知道硬件自身的精确细节。
可以从位于系统内的储存器获得驱动程序,或可以从其他地方(例如,从经由互联网访问的制造商的网站)获得驱动程序。在集线器被用于将物理设备连接到系统中的情况下,驱动程序的本地副本可以被存储在集线器中,使得可以容易地访问驱动程序的本地副本。(根据需要,系统/集线器可以经配置用于周期性地检查对驱动程序和对下载更新的版本的更新)。在物理设备仅提供具有一般信息的网络抽象模块(例如,其是“打印机”)的情况下,网络抽象模块可以获得适合于提供软件接口的通用设备驱动程序。例如,网络抽象模块可以获得足以与物理设备相互作用的通用打印机驱动程序。
一旦获得驱动程序,第一设备抽象模块就试图通过尝试找到具有与物理设备相同的行为/功能的一个或多个标准形式,将物理设备映射到至少一个预定义标准形式中的一个(S78)。在物理设备具有一个功能(例如,仅能够打印的打印机)的情况下,第一设备抽象模块将物理设备映射到定义该功能的预定义标准形式。(如果系统包括单个预定义标准形式,则第一设备抽象模块必须仍检查标准形式定义与物理设备的功能相同的功能)。类似地,在物理设备具有两个或更多功能(例如,能够打印、复印和扫描的机器)的情况下,第一设备抽象模块试图将每个功能映射到对应于这些功能的一个或多个预定义标准形式。
设备抽象模块可以包括经配置用于实行映射的处理器/微处理器。因为已经识别设备驱动程序,所以第一设备抽象模块可以已经具有关于新的物理设备的类型的线索。这可以帮助设备抽象模块选择预定义标准形式的子集进行测试。例如,如果已经获得用于‘打印机’的设备驱动程序,则设备抽象模块可以选择与‘打印机’、‘打印和扫描设备’、‘打印和复印设备’、‘影印机’等相关的这些预定义标准形式,以检查物理设备是否具有任何额外的功能/行为,使得找到正确的标准形式。额外地或供选择地,如果物理设备是具有其它功能(例如,扫描和复印)的打印机,则设备抽象模块可以选择与“打印”、“复印”和“扫描”有关的这些预定义标准形式。设备抽象模块可以一个接一个地测试标准形式,以确定新的物理设备的类型(S80)。一旦已经识别与新的物理设备的行为中的一个或多个匹配的标准形式,设备抽象模块就获得/提供根据(多个)所匹配的标准形式表现的一个或多个标准设备(S82)。标准设备是新的物理设备的抽象版本,并且由系统使用(多个)标准设备来监测/控制新的连接的物理设备(S84)。然而,如果物理设备的行为中的一个或多个不能被映射到标准形式/与标准形式匹配,则物理设备不能被连接到系统,或可以仅具有有限的功能(例如,仅由标准设备已经表示的这些行为可以由系统是可控制的/可监测的)。设备抽象模块可以将具有关于新的物理设备已知的任何信息的消息发送到系统管理员,这可以使得相应地写新的标准形式。
应当理解,类似的步骤可以被用于将一个或多个标准形式与合成设备相关联,以使得合成设备能够由系统进行监测/控制。
示例:标准设备
图5b示出标准设备50的示例。独立于可以由真实的物理设备使用的网络协议52定义标准设备。基于与标准设备相关联的标准形式行为,为每个标准设备定义状态或一组状态。该组状态可以包含是否“开启”、“关掉”设备,设备是否“实行功能x”、“实行功能y”等。功能x、功能y针对由标准形式定义的标准设备的行为而言。例如,对于恒温器,状态可以包含“测量温度”、“改变温度”、“开启锅炉”、“关掉锅炉”、“开”、“关”等。当相关联的物理设备被识别为处于特定状态时,或当相关联的物理设备从一个状态过渡到另一个状态时,标准设备可以发出事件。标准设备可以优选地定义当设备处于特定状态时可以发生的动作或可能性。例如,如果标准设备处于“关”状态(因为相关联的物理设备也是“关”),则可能的动作为仍处于当前状态中,或移动到“开”状态。标准设备可以被用于通过控制标准设备从关状态移动到开状态,开启相关联的物理设备。该命令由系统(在实施例中,经由集线器设备)提供给相关联的物理设备,以开启物理设备。预定义动作限制标准(和物理)设备可以如何表现或可以如何控制标准(和物理)设备。
每个标准设备可以包括定义标准设备的特定的软件组件如何彼此相互作用的应用程序编程接口(API)。标准设备可以经由额外的API(诸如为万维网的抽象的代表性状态传送API(或REST API)、事件API)或用于接收事件的通知(例如,相关联的物理设备中的状态改变的通知)的事件总线与平台且与其他设备相互作用。
图5b中示出的示例标准设备50为标准宠物翻板或宠物门。物理智能宠物门的行为可已经被广泛识别为‘感测宠物的存在’、‘当感测到宠物在宠物门的附近时打开宠物门’和‘当没有感测到宠物在宠物门的附近时关闭/锁定宠物门’。如早前所提到的,标准设备可以包括指示设备可以处于的可能的状态的状态表。标准设备内的方框中的词表示特定的标准设备的可能的状态。在该示例中,标准宠物门可以处于“锁定”、“解锁”、“进入”或“离开”状态。状态之间的箭头定义可以导致状态改变的动作,并且定义当在特定的状态中可用的可能的选项。例如,如果宠物门处于“锁定”状态,则宠物门可以继续为锁定,或宠物门可以移动到“关掉”状态,或宠物门可以移动到“解锁”状态,如由指向远离“锁定”状态方框的箭头所指示的。类似地,如果物理宠物门解锁,则宠物可以通过宠物门。如果物理门被感测到在一个方向上(例如,在朝向房子上)移动,则宠物可以通过宠物门进入房子,并且状态从“解锁”状态移动到“进入”状态(然而暂时地)。对“进入”状态的改变可以触发事件或警告,以让系统或宠物的主人知道宠物已经回家。类似地,如果宠物门被感测为在相反的方向上移动,则标准设备从处于“解锁”状态移动到“离开”状态(然而暂时地),其中状态的改变可以触发事件或警告。例如,如果设备处于“离开”状态,则为了安全性,标准设备可以触发事件“锁定”相关联的物理宠物翻板。可以经由事件总线将事件/警告/命令传输到其它系统组件,以使得能够在真实的物理设备中实施动作。
示例:合成设备
如早前所提到的,合成设备是可组合逻辑块,该可组合逻辑块可以被用于提供新的虚拟设备,该新的虚拟设备可以使得能够进行连接环境的更用户友好的和可以理解的监测。图6示出由包括(在该情况下)每个可以使用同的通信协议52连接到互联网/网关的运动传感器、智能插头和相机的许多标准设备50构成的示例合成设备。合成设备可以由两个或更多标准设备、两个或更多合成设备,或一个或多个标准设备和合成设备的组合构成。标准设备通过事件总线彼此链接,这使得通知能够在设备之间(例如,通过每个设备的事件API)共享。合成设备60还可以包括可以被称为生活辅助提议的提议或规则54。系统处理器从标准设备接收输入或数据,并且根据合成设备的规则/提议处理这些输入/数据。处理器根据标准设备数据和规则的组合,确定合成设备的状态或输出。
本系统/平台的实施例可以使得为一个功能或目的装配的一个或多个物理设备能够同时被用于其它功能,为终端用户创建剧增的价值。例如,物理设备诸如用于在家中感测温度的恒温器可以由合成设备使用,用于占用检测。在该示例中,房子中或在房子中各个房间中的‘高’感测的温度可以由合成占用检测设备使用以确定当前由人占用房子(或房间)。如果房主没有想到在该特定的时间房子被占用,则可以警告房主在空家中供暖设备处于开,或家中有入侵者的可能性。因此,简单温度感测设备的输出可被用于提供虚拟安全系统。
如先前所提到的,设备规则引擎可被提供在系统内,以包含指定可以相对于在特定的连接环境中的物理设备实行的特定的动作的规则或政策。例如,在物理设备(诸如家庭供暖系统或恒温器)的情况下,为物理设备指定的规则可以简单地为“当家是空的时,关小供暖设备”。额外地或供选择地,规则可以更复杂。例如,防盗警报系统可以具有解除保险宽限期、部分设置模式等,并且因此与物理警报系统相关联的规则可以为“如果在一段时间内房子中的所有房间被确定为空的,则开启警报系统”,或“在晚上开启在房子的底层上的警报系统”。平台提供简单框架,在该简单框架中可以表达这些应用规则,并且这些应用规则可以在家中、在云中或跨越两者运行,而不用重写来对新的设备作出说明。这是因为可以关于真实物理设备的标准表示表达规则。例如,如果物理设备中断,并且由实行相同功能但由不同制造商制作的的新的物理设备替换,则新的物理设备可以被集成到平台中,而不用要求规则适应于对新的物理设备的精确技术规格作出说明。
图6中示出的示例合成设备示出三个标准设备50可以如何与提议或规则54组合以提供“生活辅助”。标准运动传感器、标准智能能量监测插头和标准相机可以组合以提供关于家(相关联的物理设备位于家中)的额外的信息。合成设备(经由物理设备的标准表示)从物理设备接收输入,并且根据规则处理输入,以确定资产被占用还是没有被占用。合成设备可以被用于监测独居的老人,以远程检查他们是否在他们的家中且是否很好。下面阐述了规则表的示例:
在第一情境中,运动传感器和相机检测在家中走来走去的人(该人可正在看电视)。他们走来走去的事实表明人很好,并且合成设备经配置用于不采取任何动作。在第二情境中,由电视消耗能量,并且虽然由相机检测到人,但是运动传感器指示他们没有在移动。这可以因为人在电视前面睡觉,或因为他们不舒服或已经跌倒。如果在一段时间之后从标准设备接收的输入不改变,则合成设备可以经配置用于将警告发送给看护者、医生、相对或紧急服务。因此,合成设备可以被用于监测和辅助独居的人,而不被打扰。
在另一个示例中,考虑包括多个物理设备的家。物理设备可以是都连接到系统的智能电话、恒温器和锅炉。物理设备通过系统被映射到被称为“移动设备”、“温度传感器”和“供暖系统”的标准设备,以便被监测和/或控制。被称为‘占用检测’设备的合成设备包括标准设备“移动设备”、“温度传感器”和“锅炉”连同定义合成设备的功能或能力的提议/规则。合成占用检测器将可以被用于监测资产(例如,用户的家或办公室)的占用的单个虚拟用户友好的设备提供给用户。
合成设备从物理设备(经由物理设备的标准表示)接收输入,并且根据规则处理输入,以确定资产被占用还是没有被占用。下面阐述了规则表的示例:
在上面的第二情境中,用户被警告在空资产中锅炉在燃烧的事实。为了节省能量,用户可以使用合成设备以关掉锅炉,或远程关小恒温器设置(或他们可以使用其它软件远程实行这些操作)。因而,合成设备具有各个物理设备凭自己的力量可不能拥有的能力。
如果合成占用设备还包括与位于资产中的安全相机/运动传感器有关的标准设备,则合成设备可以使用来自设备的输入,以检查是否在资产中存在入侵者。例如,规则表可以被扩展如下:
在该情况下,规则确定存在入侵者。应用该合成设备的处理器可以经配置用于自动地将消息/电子邮件发送到房主,或到安全设备,以将可能的入侵者警告给他们。
在该示例中,对象能力模型可以准许房主对合成‘占用检测’设备进行完全控制,使得他们可以配置用于他们的家/办公室的设备。模型还可以准许房主有远程控制他们的供暖系统的权利。(许可与映射到真实世界供暖系统的标准设备有关)。用户自己可能够将有限的许可准许给与供暖系统有关的第三方。例如,房主可以将关于在住在家里的其他人自己的卧室中的温度设置的许可准许给住在家里的其他人。在另一个示例中,当开启锅炉时,用户可以准许他们的天然气供应者有监测锅炉的操作的权利,使得天然气供应者可以检查锅炉是否在正常操作,并且告知用户潜在的问题。然而,为了安全性,天然气供应者可没有控制供暖系统自身(例如,改变恒温器设置)的权利,以便使任何恶意的、未授权的活动的风险缩到最小。类似地,天然气供应者可没有监测或访问锅炉开/关次数的权利,因为这样的信息可以间接指示是否占用资产,可能恶意地使用资产。
图8示出由真实的标准设备和合成设备组成的示例配置的环境的示意图。连接环境可以包括各种物理设备,诸如用电监测器、传感器、钥匙扣和服务诸如SMS服务。这些都经由通过菱形示出的标准表示通信。标准设备被用于确定相关联的物理设备的状态,并且信息可以馈送到合成设备中。
例如,被称为周边断开SD的第一合成设备25a包括用于物理设备22d、物理设备22e的标准设备23a、标准设备23b(即,在资产中的前门和后门上的接触传感器)。物理设备是两个不同的传感器,并且因此具有两个不同的标准设备-前门CS和后门CS。如果合成设备25a从物理设备中的一个或两个经由门是打开的相关联的标准设备接收输入,则合成设备可以将指示已存在周边断开的消息发送到为警报SD 25b的第二合成设备25b。第一合成设备可以定期经由标准设备(在REST界面上的)轮询物理设备,以查询门是否打开。
该第二合成设备25b与包括APNS服务39d、SMS服务39e、警报器39f和专业监测服务39g的多个用户设备通信,APNS服务39d、SMS服务39e、警报器39f和专业监测服务39g每个与不同的设备驱动程序实例27a-设备驱动程序实例27d相关联且经由不同的设备驱动程序实例27a-设备驱动程序实例27d控制。用户端设备(例如,智能电话或平板计算机)可不是经由标准设备/合成设备由系统可控制的。然而,如上面所提到的,用户端设备中的各个传感器或功能可以由系统经由与传感器的(多个)功能匹配的标准设备控制/监测。类似地,某些用户端设备处理(例如,智能电话发送SMS消息的能力)可以是由系统可访问的(例如,以发送SMS消息)。如图所示,如果满足某些条件,则第二合成设备25b可以经由设备驱动程序实例27a访问用户设备上的APNS服务39d,以将命令发送到用户侧设备中的每个,以发警报的声音。
第二合成设备25b还组合两个另外的合成设备、时间表SD 25c和占用SD 25d。占用SD 25d包括两个物理设备,也就是两个用户卡22f,两个用户卡22f经由它们自己相关联的标准卡23f与占用SD通信。虽然用户卡属于不同的用户,并且可以由不同的制造商制作用户卡,但是它们具有相同的标准形式。追踪每个卡的位置,并且当用户到达或离开位置(例如,家)时,经由标准设备将消息从物理设备发送到合成设备。合成设备可以定期经由标准设备轮询物理设备,以查询每个卡的用户是否在家。当或有人进入家或离开家时,占用SD将消息发送到警报SD。警报SD可以定期轮询占用SD关于任何人是否在家。这是因为如果随着正常占用者进入家周边断开信号被定时,则不需要发出警报。
占用SD还包括电力使用追踪器合成设备25e,电力使用追踪器合成设备25e包括是传感器22g的一个物理设备,传感器22g经由标准设备与电力使用追踪器合成设备25e通信,标准设备表示电力监测器23g。由传感器监测电力使用中的改变,并且当检测到改变时,从物理设备经由标准设备将消息发送到合成设备。合成设备可以定期经由标准设备轮询物理设备以查询当前使用是否已经改变。当电力使用追踪器合成设备25e确定电力使用已经改变时,电力使用追踪器合成设备25e将消息发送到占用SD,以指示存在可以指示用户在家的新的活动。占用SD可以定期轮询电力使用追踪器合成设备25e。该合成设备需要被设置以理解电力使用是否指示用户是否存在。这可以是基于典型的消费者体验。来自电力使用追踪器合成设备25e的用户在家的消息还可以触发消息从占用SD到警报SD。
例如,基于用户设置时间表,时间表SD 25c和警报SD 25b两者可以从时间服务标准设备接收消息以唤醒。因此,可以仅在接收该消息之后激活警报SD。警报SD可以轮询时间表SD以检查已经启用时间,并且时间表SD可以轮询时间服务标准设备以检查时间。
因此,如果合成警报从其他合成设备接收指示当住在资产中的人没有在那里时资产被占用的数据,则合成警报(经由一个或多个物理设备的标准表示)将命令发送到一个或多个物理设备,以将SMS警告发送到房主或安全服务,或发真实警报的声音。对象能力模型可以被用于该连接环境中,以允许安全服务对资产中的安全相机的输出具有暂时访问,所以它们可以在派遣人员到资产之前检查资产是否被破门而入。可以暂时准许许可,并且只要合成警报将警告发送到安全服务,就警告他们可能的破门而入。一已经处理该情况,就可以撤销许可,并且合成警报回到没有监测到破门而入的状态。
时间同步
如早前所提到的,在图1的系统中,物理设备12的内部时钟11可以彼此失去同步和/或与基准时钟105以相同或不同的量失去同步。与其说要求每个物理设备周期性地轮询外部基准时钟以更新其内部时钟/使其内部时钟与基准时钟同步,不如说本发明的实施例提供了在标准和/或合成设备内保持时间的方式。因此,在实施例中,相对于在与物理设备和/或合成设备相关联的标准设备内保持的时间给予相对于物理设备给予的时间相关命令(例如,在12:30关断锅炉)。
如图2所示,物理设备22可以每个包括内部时钟21。在实施例中,与物理设备22相关联的(多个)标准设备可以包括标准基准时钟。在实施例中,其是存储在包括标准时钟的集线器28中的标准设备的实例,由此离开存储在其他地方(例如,在云/远程服务器中的数据库中)未修改的全局标准设备。在标准设备的每个实例内的标准时钟可以是用于从基准时钟获得时间的调用。基准时钟可以是在系统20内定义的由系统的所有组件可访问的且由用于同步的所有组件使用的单个基准时钟。在实施例中,基准时钟可以用于从位于系统外部的单个外部时钟(诸如提供协调通用时间的一个)获得时间的调用。
额外地或供选择地,系统可以包括用于连接到系统的每个物理设备的时钟偏移,并且在实施例中,标准设备的每个实例可以包括该时钟偏移而不是标准时钟。时钟偏移指定由基准时钟和物理设备(标准设备与该物理设备相关联)的内部时钟21指定的时间和之间的差值。例如,如果物理设备22的时钟21声明当前时间是12:30,并且标准时钟/基准时钟声明当前时间是12:33,则时钟偏移记录在标准/基准时钟和物理时钟21之间存在负三分钟(-3分钟)的差值,即,物理时钟慢于标准/基准时钟运行3分钟。类似地,如果物理设备22的时钟21声明当前时间是12:40,并且标准时钟/基准时钟声明当前时间是12:33,则时钟偏移记录在标准时钟/基准时钟和物理时钟21之间存在正七分钟(+7分钟)的差值,即,物理时钟快于标准时钟/基准时钟运行7分钟。时钟偏移可以被认为在物理时钟21和标准/基准时钟之间的映射,并且因而为标准设备的每个实例定义或记录时钟偏移。优选地,标准设备的每个实例指定参考外部基准时钟的时钟偏移,使得在标准设备的每个实例内仅保持时钟偏移而不是时钟自身。有利地,这可以使得能够简化动作/命令的实施,以至于所有的标准设备有效地引用单个外部时钟且与单个外部时钟同步。
时钟偏移允许用户控制物理设备22,而不用系统20的用户需要物理设备的时钟21的任何知识。例如,用户可以使用系统20远程对在他家内的锅炉编程,以在17:30开启,以便在他到达家之前加热资产。用户可以经由他的控制设备(例如,智能电话39b)将命令输入到系统,由系统接收命令,并且将命令发送到与物理锅炉相关联的标准设备的实例。标准设备的实例包括时钟偏移,例如,时钟偏移声明在物理设备的时钟和基准时钟之间存在+7分钟的差值。由标准设备使用时钟偏移,以将在从用户接收的时间相关指令中的时间映射到在物理设备中的时间。在该示例中,标准设备吩咐当时钟21达到17:37时物理锅炉开启,以对锅炉的时钟21在基准时钟之前运行7分钟的事实作出说明。
类似地,用户可以输入关于合成设备的时间相关命令。这里,形成合成设备的每个标准设备包括时钟偏移。每个时钟偏移可以是不同的,并且因此,通过定义合成设备和标准设备内的基准时钟和/或时钟偏移,用户可以输入与多个物理设备相关的单个时间相关命令,而不需要物理时钟的任何知识。
在标准时钟被提供在标准设备的每个实例内的实施例中,标准时钟可以每个彼此同步,并且可以每个与基准时钟同步。例如,标准时钟可以使用网络时间协议(NTP)以在几毫秒协调通用时间内使每个标准时钟同步。有利地,这去除对物理设备内的时钟同步的要求。
无论每个标准设备是否包括标准时钟和/或时钟偏移,都有必要定期检查标准设备的每个实例内的时钟偏移,以确保偏移量保持正确。因此,在第一设备抽象模块中的处理器可以轮询连接到集线器28的每个物理设备22的时钟21。处理器可以更新在标准设备的每个实例内定义的时钟偏移。轮询的频率(并且因此,更新的时钟偏移的频率)可以取决于系统中或由特定设备要求的时间准确性。
由于在系统中参考单个系统基准时钟(或标准和/或合成时钟)指定了由物理设备22实行的任何时间相关动作,所以物理设备自己的时钟21没有那么重要。然而,如果物理设备22和集线器28之间的连接丢失(例如,如果集线器28故障或到互联网的连接丢失),则物理设备22可以经配置用于回到使用它的内部时钟21来实行被存储在物理设备内的任何时间相关动作。
在优选的实施例中,为了应用,基于基准时钟上的时间,时间相关命令被发送到的物理设备的设备驱动程序。物理设备22的内部时钟21基本上被忽略。例如,如果时间相关命令在14:00将恒温器温度往上转到所要求的温度,则设备驱动程序经配置用于当基准时间达到14:00时,调整恒温器温度,而不管内部时钟的时间。因此,通过使用基准时钟简单地实施时间相关命令,简化时间同步。
然而,这样的时间相关控制仅当设备驱动程序能够查询当前时间的基准时钟时是可能的。如果因例如查询外部时钟所要求的连接已经暂时丢失而设备驱动程序不能这样做,则设备驱动程序可以切换到使用物理设备的内部时钟来应用时间相关命令。
随着时间测试设备行为
保持标准/合成设备内(或模拟模块内)的时间或时钟偏移还可以使得系统能够测试连接物理设备的行为。可以仅当系统内的多个组件或实体组合时识别突现行为。广义地说,包括一个物理设备22的系统可以操作良好,但是当添加第二物理设备时,设备的组合可以导致系统中的问题。例如,集线器可不知道如何处理同时从两个物理设备接收的消息,或如何将每个物理设备映射到其正确的标准设备等。在另一个示例中,分别正确表现地一组物理设备可当它们经由合成设备同时被感测和/或控制时不能正确表现。分层抽象架构(即,第一抽象级别/模块和第二抽象级别/模块)和在标准/合成设备内保持的时间的组合可以使得能够在终结之前测试系统中的改变(例如,物理设备、标准设备或合成设备的添加/去除,或物理设备、标准设备或合成设备的设置的改变)。额外地或供选择地,包含与物理设备相关联的设备驱动程序的副本的模拟模块可以被用于在时间相关命令在物理设备内被实施之前测试时间相关命令。用于控制/操作物理设备的设备驱动程序或软件的实例被存储在模拟模块中,并且被用于当该实例给出特定的时间相关指令时测试软件如何表现。这使得能够在物理设备中实施任何动作前面识别软件错误。特别地,可以通过使系统内的时间加快运行测试,使得测试在一定长度的时间内(例如,在24小时、一个月、一年、一个闰年等内)运行。这对于在一定长度的时间之后检查是否引起任何突现行为可以是有用的。因为在标准/合成时钟内保持时间,所以时间的加快是可能的。因此,系统可能够在一年的时间周期内通过人为地使系统的基准时间(或标准/合成时钟)加快,孤立地测试系统的部分,其中测试可以仅持续真实时间中的片刻。
转回到图4,图4示出例示本发明的实施例的分层架构的框图。如先前所阐明的,每个物理设备40与标准设备42的实例相关联,并且物理设备包括时钟41。标准设备的实例还包括标准时钟和/或时钟偏移43。一个或多个标准设可以组合以形成合成设备44,如早前所提到的,其中合成设备可以包括其自己的合成时钟45(其自己的合成时钟45可以是用于从单个系统时钟获得时间的调用,或用于从单个外部基准时钟获得时间的调用)。物理设备40可以经由标准设备和/或合成设备由用户控制。可以或参考合成时钟45或参考形成合成设备的标准设备中的一个内的标准时钟实施相对于合成设备接收的任何时间相关命令。额外地或供选择地,(多个)标准时钟43和(多个)合成时钟可以每个经由网络时间协议(NTP)与协调通用时间同步,使得使用标准时钟或合成时钟的哪一个没有关系。
特别地在人为地加速的时间周期内,分层架构可以使得能够测试系统。在实施例中,双重测试可以被用于使系统的测试自动化。抽象层之间的边界可以是单独可测试的,并且特别地,可以由边界上面和下面进行测试。例如,用于测试标准设备和物理设备(标准设备与该物理设备相关联)之间的边界的第一测试46可以包括测试物理设备40和标准设备之间的映射,以及在标准设备42和物理设备之间的映射(如由在相反的方向上指向的一对箭头46所指示的)。标准设备和物理设备之间的该双向测试使得系统能够例如检查标准设备是否能够将消息发送到物理设备,以及物理设备是否能够将消息发送回到标准设备。类似地,在合成设备和标准设备之间在两个方向上实行第二测试48。
设备的测试和设备抽象的测试使得能够识别系统中软件中的问题。特别地,由于由相同的标准设备表示的所有物理设备具有相同的功能(如由标准形式定义的),所以测试标准设备可以使得与标准设备相关联的所有物理设备能够自动地进行批量测试。这可以去除不得不分别且手动检查物理设备的需要。双重测试方法可以被用于检查是否由系统中的每个设备正确地解释且由每个设备(无论是物理的、标准的还是合成的)正确实施由用户设置的指令。这可以帮助识别和校正当尝试经由平台操作真实世界设备时用户可能面对的任何潜在的问题。
图9是例示测试方法的流程图。第一步骤(S100)用于接收用于系统中的物理设备中的一个的时间相关指令。通过时间相关,意味着根据在特定时间的指令控制物理设备。从可以是在系统中的或由系统引用的基准时钟获得时间,如上面更详细阐明的。如图9所示,一旦接收指令,系统就可以进入到测试阶段或直接到控制阶段,在测试阶段中,测试指令,在控制阶段中实施指令。
为了使得能够进行测试,系统可以经配置用于将时间注入到与物理设备、标准设备和/或合成设备相关联的软件(例如,与设备相关联的设备驱动程序)中。因此,在整个代码中,用从基准时钟获得的时间置换软件代码内的是时间值。首先定义测试时间相关指令的周期(S102)。测试周期可以是几小时、几天或甚至几个月或几年的周期,并且测试周期可以是立即开始或在未来的某点处开始。测试周期还可以包括一组特定的时间顺序。然后,下一个步骤是调整用于测试周期的基准时钟(S104)。调整可以包括将基准时钟的时间向前行进到测试周期的开始。在测试周期是长的时间周期的情况下,调整还可以包括使时间加速,以测试设备或时间表。例如,使时间加速可以被用于在普通年和闰年期间检查设备是否正确地操作,和/或当日光节约时间生效的那些天设备是否正确操作。因此,基准时钟可以被认为是可控制的时间信号,可控制的时间信号可以被用于设置代码中的特定时间,设置用于测试代码的时间顺序/周期,和/或使时间加速,使得可以在时间周期内可以测试代码。
通过模拟将每个时间相关指令发送到物理设备测试系统(S106)。可以通过将指令发送到与物理设备相关联的设备驱动程序的副本完成该模拟(其中副本可以被存储在先例模块内-如图2所示,或在模拟模块内的数据库中)。供选择地,模拟可以使用与物理设备相关联的该标准设备或每个标准设备。在任一种情况下,模拟检查每个标准设备或设备驱动程序的副本是否如预期地进行表现。时间相关指令中的一些时间相关指令将生成软件错误或关于系统的行为的其它问题是可能的。在该情况下,将生成通知或警告以标记问题(S108)。然后这允许用户调整指令中的一些指令以解决突现行为或软件错误。
可以通过为将被模拟的每个设备提供模拟代码,实现设备行为/响应的模拟。模拟模块(例如,以Java实施的)模拟真实的物理设备的操作。然后,设备驱动程序的副本(和/或标准设备)与用于设备的模拟模块而不是物理设备自身相互作用。例如,模拟模块可以模拟将从实际无线电系统接收的响应(设备藉由响应连接到实际无线电系统)(在无线设备的情况下)。这允许实行测试以检查设备正确地与它们的设备驱动程序相互作用。还有,优选地,模拟对于控制/抽象层级中的更高级别是透明的,允许经由在不同的抽象层中定义的合成设备和/或标准设备的相互作用,好像在使用物理设备。这反过来使得如果必要以时间加速的方式测试在抽象/控制层级的各个级别处的相互作用。
可以独立于控制阶段或在控制阶段之前完成测试阶段。一旦测试结束,基准时钟就被复位为标准时间(时间流逝的钟头和速率两者)。控制阶段可以在测试阶段的结束之后(由虚线所示的),或可以直接通过时间相关指令的接收被初始化。通过仅在已经完成测试阶段之后实行控制阶段,可以减少系统中真实的缺陷的数量。
控制阶段的第一步骤(S110)用于将每个时间相关指令(其已经被检查和确定如预期地工作)发送到每个物理设备的设备驱动程序(或到与物理设备相关联的且用于控制物理设备的标准设备)。然后,设备驱动程序/标准设备基于从基准时钟获得的时间,在物理设备中实施时间相关指令(S112)。因此,由每个物理设备的设备驱动程序/标准设备使用基准时间控制每个物理设备(S114)。如果设备驱动程序/标准设备不能从基准时钟获得当前时间,则设备驱动程序/标准设备可以回复到使用物理设备的内部时钟实施时间相关指令。
例如,考虑具有在星期三2pm到达24℃的室温的时间表的恒温器。如果恒温器具有其自己的内部时钟,则恒温器可以经配置用于当其内部时钟在星期三达到2pm时,开启供暖设备。例如,为了日光节约时间进行调整对于用户将是手动体验,或经受固件更新。
如果时恒温器中的时间形象化为服务,则设备驱动程序/标准设备(或合成设备)将具有经过时间的模型,且考虑到DST节约。如果恒温器断开且一些备份时间表被加载到设备中,则任何剩余的内部时钟可以被用于独立行为。设备驱动程序/抽象设备可以使用日历服务以开始动作来开启供暖设备,满足所需要的前置时间,并且然后为恒温器开启供暖设备。驱动设备驱动程序/抽象设备的时钟可以是NTP同步的,并且或在集线器上或在云中运行。
无疑地,对于技术人员将发生许多其它有效的供选择的方案。应当理解,本发明并不限于所描述的实施例,并且包含对于本领域中的技术人员来说处于至此随附权利要求的范围内的显而易见的修改,并且更一般地,上述已经是本发明的例示性实施例的详细描述。可以作出各种修改和添加,而不脱离本发明的范围。视情况而定,上面所描述的各种实施例的每个的特征可以与其它描述的实施例的特征组合,以便在相关联的新的实施例中提供特征组合的多样性。还有,虽然上述描述了本发明的仪器和方法许多单独的实施例,但是本文中已经描述的仅仅为了说明本发明的原理的应用。例如,如本文中使用的术语“过程”和/或“处理器”应该广义地包括基于功能和组件的各种电子硬件和/或软件。而且,所描绘的过程或处理器可以与其它过程和/或处理器组合,或被分成各种子过程或子处理器。这样的子过程和/或子处理器可以根据本文中的实施例进行不同地组合。同样地,可以明确地设想本文中的任何功能、过程和/或处理器可以使用电子硬件、由程序指令的非暂时计算机可读介质组成的软件,或硬件和软件的组合来实施。于是,该描述意指仅以示例的方式来理解,并且不以其它方式限制本发明的范围。
Claims (29)
1.一种用于测试的系统,包括:
至少一个物理设备,其中,所述物理设备是由所述系统能寻址的,并且其中,所述物理设备由设备驱动程序操作或控制;
模拟模块,所述模拟模块包括用于存储用于至少一个所述物理设备的所述设备驱动程序的副本的存储装置;以及
至少一个处理器,被配置为:
接收用于至少一个所述物理设备的至少一个时间相关命令,其中,时间是从基准时钟获得的;
通过以下测试所述模拟模块内的系统操作:
定义测试周期;
为所述测试周期调整所述基准时钟;
在所述测试周期中,将至少一个所述时间相关命令应用于与指定的物理设备相关联的所述设备驱动程序的副本,以模拟所述指定的物理设备的行为;以及
输出关于所述指定的物理设备的模拟行为的任何问题;以及
通过将所述时间相关命令发送到与所述指定的物理设备相关联的所述设备驱动程序,控制所述系统内的物理设备,其中,所述设备驱动程序将所述时间相关命令应用于所述物理设备。
2.根据权利要求1所述的系统,其中,至少一个所述物理设备包括多个物理设备。
3.根据权利要求1或2所述的系统,其中,所述至少一个处理器经配置用于调整所述基准时钟以使所述测试周期的时间加速。
4.根据权利要求1或2所述的系统,其中,所述基准时钟是在所述系统内定义的单个基准时钟。
5.根据权利要求1或2所述的系统,其中,所述基准时钟是用于从被提供在所述系统外部的外部时钟获得时间的调用。
6.根据权利要求1或2所述的系统,还包括先例模块,所述先例模块包括存储至少一个预定义的标准设备的数据库,其中,所述标准设备对应于预定义标准形式,所述标准形式为一种类型的物理设备定义一组最低的能力,其中,至少一个所述物理设备与至少一个标准设备相关联,至少一个所述标准设备与所述物理设备的能力中的至少一些能力匹配。
7.根据权利要求6所述的系统,其中,所述至少一个处理器经配置用于通过以下测试系统操作:定义测试周期;为所述测试周期调整所述基准时钟;在所述测试周期中,将每个时间相关命令发送到与所述指定的物理设备相关联的至少一个所述标准设备,以模拟所述指定的物理设备的行为;以及输出关于所述指定的物理设备的所述模拟行为的任何问题。
8.根据权利要求6所述的系统,还包括原型模块,所述原型模块包括存储一个或多个合成设备的数据库,其中,每个合成设备包括一个或多个标准设备和至少一个规则,所述至少一个规则定义一个或多个所述标准设备如何组合以形成所述合成设备。
9.根据权利要求8所述的系统,其中,所述至少一个处理器经配置用于在所述测试周期期间,通过测试所述合成设备的行为,测试所述系统。
10.根据权利要求8或9所述的系统,其中,所述至少一个处理器还经配置用于在所述测试周期内测试在每个合成设备和每个相关联的标准设备之间的接口。
11.根据权利要求6所述的系统,其中,所述至少一个处理器还经配置用于在所述测试周期内测试在至少一个所述物理设备和相关联的所述标准设备之间的接口。
12.根据权利要求1或2所述的系统,其中,所述至少一个处理器包括测试处理器和单独的控制处理器,所述测试处理器经配置用于测试系统操作,所述单独的控制处理器经配置用于控制每个物理设备。
13.根据权利要求1或2所述的系统,其中,所述测试周期具有以天、周、月或年指定的持续时间。
14.根据权利要求1或2所述的系统,其中,所述测试周期包括至少一个时间相关指令。
15.根据权利要求1或2所述的系统,还包括用户界面,以使得用户能够监测和/或控制至少一个所述物理设备。
16.根据权利要求15所述的系统,其中,所述用户界面是被提供在计算设备或移动计算设备上的图形用户界面,并且为所述物理设备中的每个物理设备指定的时间相关动作是参考所述基准时钟使用所述用户界面指定的。
17.根据权利要求15所述的系统,其中,所述至少一个处理器经配置用于实施对象能力模型,所述对象能力模型定义与每个标准设备相关联的安全许可,其中,所述对象能力模型是定义准予所述用户和每个标准设备访问所述标准设备和所述物理设备的功能和数据的许可的计算机安全模型。
18.根据权利要求17所述的系统,其中,在指定时间周期内,所述对象能力模型将许可准许给所述用户且给每个标准设备,其中,所述时间周期的到期自动地撤销许可。
19.根据权利要求17所述的系统,其中,所述用户是第三方,并且其中,所述对象能力模型经配置用于将许可准予给所述第三方,许可限制所述第三方访问由所述标准设备和所述物理设备产生的所述功能和数据。
20.根据权利要求18或19所述的系统,其中,在指定的时间周期内为每个标准设备准许的许可是相对于所述基准时钟定义的。
21.根据权利要求1或2所述的系统,其中,所述基准时钟与协调通用时间自动同步。
22.根据权利要求2所述的系统,其中,多个所述物理设备位于一个或多个位置处。
23.根据权利要求22所述的系统,其中,所述一个或多个位置中的一个是家或办公室。
24.根据权利要求22所述的系统,其中,所述一个或多个位置中的一个是移动位置,其中,所述移动位置是车辆。
25.根据权利要求22所述的系统,其中,多个所述物理设备包括与人类或动物位于一起或位于人类或动物上的移动设备或可穿戴的设备。
26.根据权利要求6所述的系统,其中,所述先例模块位于网关中或远程服务器中。
27.根据权利要求6所述的系统,其中,所述至少一个处理器包括位于所述先例模块中且将每个物理设备与标准设备相关联的处理器。
28.根据权利要求1或2所述的系统,其中,所述至少一个处理器经配置用于响应于用户界面上的用户输入,控制每个物理设备。
29.一种用于测试在单个平台中互连的多个设备、服务和应用程序的方法,所述方法包括:
接收为至少一个物理设备指定的至少一个时间相关动作,其中,时间是从基准时钟获得的;
定义测试周期;
为所述测试周期调整所述基准时钟;
在所述测试周期中,将每个时间相关动作应用于与指定的物理设备相关联的设备驱动程序的副本,以模拟所述指定的物理设备的行为,其中,所述设备驱动程序的副本是用于操作或控制至少一个所述物理设备的所述设备驱动程序的副本;以及
输出关于所述指定的物理设备的模拟行为的任何问题。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201462048957P | 2014-09-11 | 2014-09-11 | |
US62/048,957 | 2014-09-11 | ||
PCT/GB2015/052625 WO2016038380A1 (en) | 2014-09-11 | 2015-09-10 | Device synchronization and testing |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107005444A CN107005444A (zh) | 2017-08-01 |
CN107005444B true CN107005444B (zh) | 2020-06-12 |
Family
ID=54151314
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580061181.1A Active CN107005444B (zh) | 2014-09-11 | 2015-09-10 | 设备同步和测试 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10474116B2 (zh) |
EP (1) | EP3192235B1 (zh) |
CN (1) | CN107005444B (zh) |
AU (1) | AU2015313998A1 (zh) |
CA (1) | CA2960921A1 (zh) |
WO (1) | WO2016038380A1 (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3226483A1 (en) * | 2016-03-30 | 2017-10-04 | Advanced Digital Broadcast S.A. | Remote service for standard to native messages translation in a lan |
US10599551B2 (en) * | 2016-08-12 | 2020-03-24 | The University Of Chicago | Automatically detecting distributed concurrency errors in cloud systems |
DE102017008051A1 (de) * | 2017-08-27 | 2019-02-28 | Tobias Rückert | Verfahren zur Deaktivierung von Steuerkanälen und Kommunikationssystem zur Kommunikation eines Users mit Gruppen von Zielgeräten |
US11412396B2 (en) | 2018-01-09 | 2022-08-09 | Keysight Technologies, Inc. | Methods, systems and computer readable media for stimulating and testing wireless devices |
US10860411B2 (en) | 2018-03-28 | 2020-12-08 | Futurewei Technologies, Inc. | Automatically detecting time-of-fault bugs in cloud systems |
US10599552B2 (en) | 2018-04-25 | 2020-03-24 | Futurewei Technologies, Inc. | Model checker for finding distributed concurrency bugs |
CN110750437B (zh) * | 2018-07-23 | 2023-12-22 | 阿里巴巴集团控股有限公司 | 一种设备调试方法、装置、设备及系统 |
CN112035335B (zh) * | 2019-06-03 | 2024-06-25 | 抖音视界有限公司 | 自动化测试的方法、装置、设备、介质 |
CN110443638A (zh) * | 2019-07-16 | 2019-11-12 | 广州微米物联网科技有限公司 | 一种基于运动场所的智能售货机信息管理方法及系统 |
WO2021162681A1 (en) * | 2020-02-11 | 2021-08-19 | Siemens Aktiengesellschaft | Method and system for imposing constraints in a skill-based autonomous system |
US11552852B1 (en) * | 2020-05-29 | 2023-01-10 | Cable Television Laboratories, Inc. | Systems and methods for managing networks for improved device connectivity |
CN111752243B (zh) * | 2020-06-12 | 2021-10-15 | 中国电子产品可靠性与环境试验研究所((工业和信息化部电子第五研究所)(中国赛宝实验室)) | 生产线可靠性测试方法、装置、计算机设备和存储介质 |
US20220398288A1 (en) * | 2021-06-14 | 2022-12-15 | Kyndryl, Inc. | Generating contextual data and visualization recommendations |
CN114625360B (zh) * | 2022-05-16 | 2022-10-21 | 西安数道航空技术有限公司 | 一种无耦合数字化开发平台及系统 |
FR3145622A1 (fr) * | 2023-02-08 | 2024-08-09 | Psa Automobiles Sa | Procédé de mise à jour d’une application d’horloge électronique avec une heure personnalisée, dispositif et véhicule associés. |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1376931A (zh) * | 2001-03-22 | 2002-10-30 | 株式会社鼎新 | 基于事件的半导体测试系统 |
JP2004021904A (ja) * | 2002-06-20 | 2004-01-22 | Nec Micro Systems Ltd | 複数プロセッサの同時シミュレーション装置および同時シミュレーション方法 |
CN1558328A (zh) * | 2004-02-11 | 2004-12-29 | 绿创科技股份有限公司 | 硬件仿真程序执行时间调整方法及该仿真程序的记录媒体 |
CN1774640A (zh) * | 2003-04-11 | 2006-05-17 | 株式会社爱德万测试 | 调试集成电路中有关定时的故障的基于事件的测试方法 |
CN101246444A (zh) * | 2008-03-03 | 2008-08-20 | 中兴通讯股份有限公司 | 一种模块测试方法及系统 |
CN101710351A (zh) * | 2008-09-17 | 2010-05-19 | 埃森哲环球服务有限公司 | 用于对多个设备进行仿真的方法和系统 |
CN102307369A (zh) * | 2011-09-13 | 2012-01-04 | 北京科技大学 | 支持无线传感网并行仿真和实物模拟的装置及方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8370124B1 (en) * | 2000-06-16 | 2013-02-05 | The Boeing Company | High fidelity time domain for spacecraft emulation systems |
US7089135B2 (en) * | 2002-05-20 | 2006-08-08 | Advantest Corp. | Event based IC test system |
US7319936B2 (en) * | 2004-11-22 | 2008-01-15 | Teradyne, Inc. | Instrument with interface for synchronization in automatic test equipment |
US7454681B2 (en) * | 2004-11-22 | 2008-11-18 | Teradyne, Inc. | Automatic test system with synchronized instruments |
JP4153957B2 (ja) * | 2006-02-27 | 2008-09-24 | 株式会社アドバンテスト | 試験システム、付加装置および試験方法 |
US8401709B2 (en) * | 2009-11-03 | 2013-03-19 | Spirae, Inc. | Dynamic distributed power grid control system |
US9417637B2 (en) * | 2010-12-31 | 2016-08-16 | Google Inc. | Background schedule simulations in an intelligent, network-connected thermostat |
EP2693279B1 (en) * | 2012-08-01 | 2018-02-21 | Fujitsu Limited | Method and program for generating a simulator |
CN103616825B (zh) * | 2013-12-05 | 2016-09-07 | 合肥工业大学 | 一种低成本半实物自适应时钟虚拟微电网实验平台 |
-
2015
- 2015-09-10 CA CA2960921A patent/CA2960921A1/en not_active Abandoned
- 2015-09-10 US US15/510,554 patent/US10474116B2/en active Active
- 2015-09-10 EP EP15767232.0A patent/EP3192235B1/en active Active
- 2015-09-10 AU AU2015313998A patent/AU2015313998A1/en not_active Abandoned
- 2015-09-10 CN CN201580061181.1A patent/CN107005444B/zh active Active
- 2015-09-10 WO PCT/GB2015/052625 patent/WO2016038380A1/en active Application Filing
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1376931A (zh) * | 2001-03-22 | 2002-10-30 | 株式会社鼎新 | 基于事件的半导体测试系统 |
JP2004021904A (ja) * | 2002-06-20 | 2004-01-22 | Nec Micro Systems Ltd | 複数プロセッサの同時シミュレーション装置および同時シミュレーション方法 |
CN1774640A (zh) * | 2003-04-11 | 2006-05-17 | 株式会社爱德万测试 | 调试集成电路中有关定时的故障的基于事件的测试方法 |
CN1558328A (zh) * | 2004-02-11 | 2004-12-29 | 绿创科技股份有限公司 | 硬件仿真程序执行时间调整方法及该仿真程序的记录媒体 |
CN101246444A (zh) * | 2008-03-03 | 2008-08-20 | 中兴通讯股份有限公司 | 一种模块测试方法及系统 |
CN101710351A (zh) * | 2008-09-17 | 2010-05-19 | 埃森哲环球服务有限公司 | 用于对多个设备进行仿真的方法和系统 |
CN102307369A (zh) * | 2011-09-13 | 2012-01-04 | 北京科技大学 | 支持无线传感网并行仿真和实物模拟的装置及方法 |
Also Published As
Publication number | Publication date |
---|---|
EP3192235A1 (en) | 2017-07-19 |
EP3192235B1 (en) | 2018-07-11 |
CN107005444A (zh) | 2017-08-01 |
US20170242414A1 (en) | 2017-08-24 |
US10474116B2 (en) | 2019-11-12 |
AU2015313998A1 (en) | 2017-04-27 |
WO2016038380A1 (en) | 2016-03-17 |
CA2960921A1 (en) | 2016-03-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107005444B (zh) | 设备同步和测试 | |
US10985973B2 (en) | System for connecting and controlling multiple devices | |
US10412052B2 (en) | Managing machine to machine devices | |
US20150134801A1 (en) | Making policy-based decisions in a network | |
US10067747B2 (en) | Embedded device application development | |
CN107003924A (zh) | 用于管理已连接消费者设备的灵活规则引擎 | |
US10574764B2 (en) | Automated learning universal gateway | |
CN107003836A (zh) | 用于所连接的消费者设备的灵活设备模板 | |
WO2019121083A1 (en) | Updating learned models | |
Helal et al. | The Gator Tech Smart House: enabling technologies and lessons learned | |
CN108027742A (zh) | 处理数字内容 | |
Baumgärtner et al. | Smart street lights and mobile citizen apps for resilient communication in a digital city | |
EP4055479A1 (en) | Operating system level distributed ambient computing | |
Martin et al. | A novel middleware for smart grid data exchange towards the energy efficiency in buildings | |
CN111919419A (zh) | 节点、网络系统和数据同步方法 | |
Culic et al. | Commercial and industrial Internet of Things applications with the Raspberry Pi: prototyping IoT solutions | |
Kim et al. | On the internet of things | |
US20200293006A1 (en) | Home automation system for predicting a health change based upon a data trend and biometric characteristic and related methods | |
Hettiarachchi et al. | A Secure and Intelligent Smart Home Controlling System | |
Song et al. | Parameter-based mechanism for unifying user interaction, applications and communication protocols | |
Branger | Standardization perspectives of communication infrastructure of future homes: from automated home to sustainable, healthy and manufacturing home | |
Thomsen | Home Appliance Integration by Pervasive Computing | |
WO2020190582A1 (en) | Home automation system including changed current usage notification and related methods |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |