CN109313543B - 机器对机器***中的动态用户界面 - Google Patents
机器对机器***中的动态用户界面 Download PDFInfo
- Publication number
- CN109313543B CN109313543B CN201680086714.6A CN201680086714A CN109313543B CN 109313543 B CN109313543 B CN 109313543B CN 201680086714 A CN201680086714 A CN 201680086714A CN 109313543 B CN109313543 B CN 109313543B
- Authority
- CN
- China
- Prior art keywords
- abstraction
- capability
- asset
- abstractions
- devices
- 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
-
- 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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/35—Creation or generation of source code model driven
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- 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/448—Execution paradigms, e.g. implementations of programming paradigms
-
- 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/451—Execution arrangements for user interfaces
-
- 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/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0806—Configuration setting for initial configuration or provisioning, e.g. plug-and-play
-
- 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/08—Configuration management of networks or network elements
- H04L41/085—Retrieval of network configuration; Tracking network configuration history
- H04L41/0853—Retrieval of network configuration; Tracking network configuration history by actively collecting configuration information or by backing up configuration information
-
- 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/22—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks comprising specially adapted graphical user interfaces [GUI]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/50—Service provisioning or reconfiguring
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Human Computer Interaction (AREA)
- User Interface Of Digital Computer (AREA)
- Stored Programmes (AREA)
- Selective Calling Equipment (AREA)
- Telephonic Communication Services (AREA)
Abstract
使用通过编程工具的图形用户界面接收到的用户输入来限定针对特定应用的一组能力抽象,并且进一步基于一个或多个用户输入来限定该组能力抽象之间的关系。特定应用用于利用机器对机器网络,并且该组能力抽象包括:针对特定应用的传感器能力抽象、致动器能力抽象、计算逻辑能力抽象、输入用户界面(UI)能力抽象、以及输出UI能力抽象。该关系包括输入UI能力抽象与计算逻辑能力抽象之间的关系,其中,输入UI能力用于向计算逻辑能力抽象提供输入。生成用于特定应用的服务逻辑以基于该组能力抽象和关系将特定应用的实例部署在环境中。
Description
技术领域
本公开总的来说涉及计算机***领域,并且更具体地涉及管理机器对机器***。
背景技术
因特网已经使得世界各地的不同计算机网络的互连成为可能。虽然之前因特网连接限于常规的通用计算***,但是正在对数量和类型不断增加的产品进行重新设计以适应在计算机网络(包括因特网)上的与其他设备的连接。例如,智能手机、平板计算机、可穿戴设备、以及其他移动计算设备已经变得非常受欢迎,甚至在最近几年取代了较庞大的、更传统的通用计算设备(诸如传统的台式计算机)。越来越多地使用具有较小的形状因子以及更受约束的特征集和操作***的移动计算设备来执行传统上执行在通用计算机上的任务。进一步地,传统的电器和设备正在变得更“智能”,是因为它们是普遍存在的并且配备有连接至或消费来自因特网的内容的功能。例如,设备(诸如电视机、游戏***、家用电器、温度调节装置、手表)已经装备有网络适配器以允许该设备直接地或通过与连接至网络的另一个计算机的连接来与因特网(或其他设备)连接。另外,这种增加的互连设备的总体也促进了计算机控制的传感器的增多,该计算机控制的传感器同样地被互连并收集新的和大的数据集。相信,越来越大量的设备(或“物体”)的互连预示了先进的自动化和互连性的新纪元(其有时被称为物联网(IoT))。
附图说明
图1A示出包括多个传感器设备的***和示例管理***的实施例。
图1B示出云计算网络的实施例。
图2示出包括示例数据管理***的实施例。
图3A是示出资产抽象和绑定的示例的简化框图。
图3B是示出资产发现的示例的简化框图。
图3C是示出使用一组经发现的资产的资产抽象和绑定的示例的简化框图。
图4A-4B是表示示例机器对机器应用部署的抽象层的框图。
图5A是用于创建新的机器对机器服务的示例图形开发工具的屏幕截图。
图5B是示出新的机器对机器服务的示例部署的简化框图。
图6是示出管理机器对机器***的两个实例之间的配置设置的应用的示例的简化框图.
图7是示出用于部署特定机器对机器***的示例***的简化框图。
图8A是示出用于使用资产抽象来开发应用的示例技术的流程图。
图8B是示出使用资产抽象的用于部署示例机器对机器网络的示例技术的流程图。
图9是根据一个实施例的示例性处理器的框图;以及
图10是根据一个实施例的示例性计算***的框图。
各个附图中相似的附图标记和命名指示相似要素。
具体实施方式
图1A是示出***100的简化的表示的框图,该***100包括部署在整个环境中的一个或多个设备105a-d或资产。每个设备105a-d可以包括计算机处理器和/或通信模块,以允许每个设备105a-d与环境中的一个或多个其他的设备(例如,105a-d)或***交互操作。每个设备能够进一步包括能够运用和利用(例如,通过其他设备或软件)于机器对机器***或者物联网(IoT)***或应用内的各种类型的传感器(例如,110a-c)、致动器(例如,115a-b)、存储器、电源、计算机处理、以及通信功能的一个或多个实例。在一些情况中,可以由一个或多个网关设备促进设备间通信和甚至IoT应用的部署,一个或多个设备(例如,105a-d)通过该一个或多个网关设备来与一个或多个网络(例如,120)中的其他设备和***进行通信并且获取对一个或多个网络(例如,120)中的其他设备和***的访问。
传感器或传感器资产能够检测、测量、和生成描述该传感器或传感器资产在其中驻留、安装或相连接的环境的特性的传感器数据。例如,给定的传感器(例如,110a-c)可以配置为检测一个或多个相应的特性(诸如,移动、重量、物理接触、温度、风、噪声、光、计算机通信、无线信号、位置、湿度、辐射的存在、液体、或特定的化学化合物以及多个其他示例)。实际上,如本文中所描述的传感器(例如,110a-c)预期发展为可能无限的多种传感器的总体,每个传感器被设计为且能够检测并产生针对新的和已知的环境特性的对应的传感器数据。致动器(例如,115a-b)能够允许设备执行某种动作以影响其环境。例如,该设备中的一个或多个设备(例如,105b、105d)可以包括接受输入并作为响应来执行其相应的动作的一个或多个相应的致动器。致动器能够包括控制器以激活附加的功能(诸如:选择性切换电源或警报的操作的致动器;相机(或其他传感器);供暖、通风和空气调节(HVAC)电器;家用电器;车载设备;照明;以及其他示例)。
在一些实现方式中,提供于设备105a-d上的传感器110a-c和致动器115a-b可以是被包括于物联网(IoT)或机器对机器(M2M)***中和/或形成物联网(IoT)或机器对机器(M2M)***的资产。IoT***可以指,由交互操作和协同增强以交付一个或多个结果或交付物的多个不同的设备组成的新的或改进的自组织***和网络。这样的自组织***出现是因为越来越多的产品和装备演进到变得“智能”,其中,它们由计算处理器控制或监测并且被提供有用于与其他计算设备(以及具有网络通信能力的产品)通过计算机实现的机制来进行通信的设施。例如,IoT***可以包括从集成在“物体”(诸如装备、玩具、工具、车辆等并且甚至为生物(例如,植物、动物、人类等))中或附连至“物体”的传感器和通信模块构建起的网络。在一些实例中,IoT***可以有机地或意外地发展,其中传感器的集合监测各种物体和相关的环境,并与数据分析***和/或控制一个或多个其他智能设备的***互连,以实现各种用例和应用(包括之前未知的用例)。进一步地,可以从至今为止不接触彼此的设备来形成IoT***,该***被自发地或动态地组成和自动配置(例如,根据对交互进行限定或控制的IoT应用)。进一步地,IoT***经常由连接设备的复杂的和多样的集合(例如,105a-d)(诸如由各种实体组供能或控制以及采用各种硬件、操作***、软件应用、和技术的设备)。在一些情况中,可以提供网关(例如,150)以本地化特定IoT***,该网关能够检测附近的设备(例如,105a-d)并且通过协调这些经检测的设备的配置来部署(例如,以自动化的、即兴的方式)特定IoT应用的实例以满足特定IoT应用的要求,以及其他示例。
当构建或定义IoT***时,促进这样的多样的***的成功的交互操作性以及其他示例考虑是一个重要的问题。可以开发软件应用来对IoT设备的集合可以如何交互以达到特定的目标或服务进行管控。在一些情况中,IoT设备可能一开始没有被构建或旨在参与到这样的服务中或与一个或多个其他类型的IoT设备进行协作。实际上,物联网的一部分前景是,随着这样的设备变得更加普遍并且新的“智能”设备或“连接”设备出现,许多领域中的创新者将创造涉及不同的IoT设备组的新的应用。然而,对这样的IoT应用进行编程或编码的动作可能对于这些可能的创新者而言是不熟悉的,因此限制了对这些新的应用进行开发以及将这些新的应用投入市场的能力,以及其他示例和问题。
如图1A的示例中所示,可以提供多个IoT设备(例如,105a-d),从该多个IoT设备中可以构建一个或多个不同的IoT应用。例如,设备(例如105a-d)可以包括如下这样的示例:移动个人计算设备(诸如智能手机或平板设备);可穿戴计算设备(例如,智能手表、智能服装、智能眼镜、智能头盔、耳机等等);诸如家用自动化设备、建筑物自动化设备、车辆自动化设备的特制设备以及不太传统的计算机增强产品(例如,智能温度-通风-空气调节(HVAC)控制器以及传感器、光检测和控制、能源管理工具等);智能电器(例如,智能电视、智能冰箱等);以及其他示例。一些设备可以是特制的以主存传感器和/或致动器源(诸如包括与天气监测(例如,温度传感器、风传感器、湿度传感器等)相关的多个传感器的天气传感器设备)、交通传感器和控制器、以及许多的其他示例。可以将一些设备静态定位(诸如:安装在建筑物内的设备;安装在路灯柱、标志、水塔上的设备;固定于地面上(例如,在室内或在室外)的设备;或者其他固定的或静态的结构)。其他设备可以是可移动的(诸如:配设在车辆的内部或外部的传感器;包装内的传感器(例如,为了跟踪货物);活动的人类用户或动物用户所穿戴的可穿戴设备;空中无人机、基于地面的无人机、或水下无人机;以及其他示例)。实际上,可能期望一些传感器在环境中移动并且可以围绕涉及移动的对象或使用这样的设备改变环境的用例(包括涉及移动设备和静态设备这两者的用例)来构建应用,以及其他示例。
继续图1A的示例,可以提供基于软件的IoT管理平台以允许开发者和终端用户建立和配置IoT应用和***。IoT应用可以提供软件支持以组织和管理一组IoT设备的操作以用于特定的目的或用例。在一些情况中,IoT应用可以被体现为:用户计算设备(例如,125)的操作***上的应用;用于在智能手机、平板电脑、智能手表、或其他移动设备(例如,130、135)上执行的移动应用;远程服务器;和/或网关设备(例如,150)。在一些情况中,应用可以具有或者利用应用管理实用程序(utility),该应用管理实用程序允许用户配置设置和政策以管控一组设备(例如,105a-d)如何在应用的情境内进行操作。还能够使用管理实用程序来协调IoT应用的特定实例,包括利用该应用来使用的设备(以及其资产)的自动化选择和配置。在一些情况中,可提供IoT管理应用(例如,在网关、用户设备、或基于云端的服务器等上),该专用IoT管理应用能够管理可能多个不同的IoT应用或***。实际上,可以将IoT管理应用或***主存在单个***(诸如单个服务器***(例如,140)、单个终端用户设备(例如,125、130、135)、或单个网关设备(例如,150)、以及其他示例)上。可替代地,IoT管理***可以分布在多个主机设备(例如,125、130、135、140、150等)上。
如上所述,可以将IoT应用本地化,从而使得利用特定地理区域、房间、或位置内的IoT***(例如,设备105a-d的***)来实现服务。在一些实例中,IoT设备(例如,105a-d)可以连接至一个或多个网关设备(例如,150),在该一个或多个网关设备上存在管理功能的一部分(例如,如与管理***140所分享的或由管理***140所支持的管理功能的一部分)和应用服务功能的一部分(例如,如与应用***145所共享的或由应用***145所支持的应用服务功能的一部分)。可以将服务逻辑和配置数据推送(或提取)至网关设备150,并且可以使用服务逻辑和配置数据来配置网关设备150的范围或接近度内的IoT设备(例如,105a-d、130、135等),以允许一组设备在该位置内实现特定服务。可以将网关设备(例如,150)实现为专用网关元件,或者该网关设备可以是多用途设备或通用设备(诸如自身可以包括传感器和/或致动器以在IoT***内执行任务的另一个IoT设备(与设备105a-d相似)或用户设备(例如,125、130、135)以及其他示例)。
在一些情况中,可以利用IoT管理***的界面或专用IoT应用开发平台对应用进行编程或以其他方式构建或配置应用。在一些情况中,IoT应用开发工具可以采取资产抽象以简化IoT应用构建过程。例如,用户可以简单地选择设备的类别或分类,并且逻辑地组装选择设备分类的集合,以建立IoT应用的至少一部分(例如,在不必提供关于配置、设备识别、数据转移等的信息的情况下)。IoT应用开发工具可以进一步利用资产抽象以开发和限定一个或多个图形用户界面(GUI)的部署用于得到的IoT应用的部署中,以允许用户在运行时控制和管理部署。进一步地,使用IoT管理***建立的IoT应用***可以是可共享的,其中,用户可以发送数据,该数据向另一个用户识别经构建的***、允许其他用户将抽象的***定义简单地移植至其他用户的环境(即使当该设备模型的组合与初始用户的***的设备模型的组合不同时)。另外,由给定的用户限定的***设定或应用设定可以配置为与其他用户是共享的或在不同环境之间是可移植的,以及其他示例特征。
在一些情况中,IoT***可以与主存在基于云端的***和其他远程***中的远程服务(诸如数据存储、信息服务(例如,媒体服务、天气服务)、地理位置服务、和计算服务(例如,数据分析、搜索、诊断等))接合(通过对应的IoT管理***或应用,或者通过参与的IoT设备中的一个或多个IoT设备)。例如,IoT***可以通过一个或多个网络120连接至远程服务(例如,145)。在一些情况中,可以将远程服务自身认为是IoT应用的资产。可以由管控IoT应用和/或部件IoT设备中的一个或多个设备来消费远程主存的服务所接收的数据以使得一个或多个结果或动作被执行,以及其他示例。
一个或多个网络(例如,120)可以促进环境中的传感器设备(例如,105a-d)、终端用户设备(例如,123、130、135)、网关(例如,150)、以及用于实现和管理IoT应用的其他***(例如,140、145)之间的通信。这样的网络可以包括有线的和/或无线的本地网络、公共网络、广域网、宽带蜂窝网络、因特网等。
一般来说,示例计算环境100中的“服务器”、“客户”、“计算设备”、“网络元件”、“主机”、“***类型***实体”、“用户设备”、“网关”、“IoT设备”、“传感器设备”、以及“***”(例如,105a-d、125、130、135、140、145、150等)可以包括可操作用于接收、传输、处理、存储、或管理与计算环境100相关联的数据和信息的电子计算设备。如本文中使用的,术语“计算机”、“处理器”、“处理器设备”、或者“处理设备”旨在涵盖任何合适的处理装置。例如,可以使用多个计算设备和处理器来实现(诸如包括多个服务器计算机的多个池)被展示为计算环境100内的单个设备的元件。进一步地,可将该计算设备中的任何计算设备、全部计算设备、或者一些计算设备适配为执行任何操作***(包括Linux、UNIX、Microsoft Windows,、Apple OS、Apple iOS、Google Android、Windows Server等)以及适配为虚拟化特定操作***(包括定制操作***和专有操作***)的执行的虚拟机。
虽然将图1A描述为包含多个元件或与多个元件相关联,但是可能并非将图1A的计算环境100内所展示的所有的元件利用在本公开的每个可替代实现方式中。另外,可以将联系图1A的示例所描述的元件中的一个或多个元件定位在计算环境100外部,同时在其他实例中,可以将某些元件包括在其他所描述的元件以及未在所展示的实现方式中描述的其他元件中的一个或多个元件内,或者作为其他所描述的元件以及未在所展示的实现方式中描述的其他元件中的一个或多个元件的一部分。进一步地,图1A中展示的某些元件可以与其他部件以及用于除本文中所描述的那些目的之外的可替代的目的或附加的目的的部件相组合。
如上所述,设备或端点的集合可以参与到物联网(IoT)网络中,其可以利用无线局域网(WLAN)(诸如根据IEEE 802.11标准族)标准化的那些、家域网(诸如根据Zigbee联盟(Zigbee Alliance)标准化的那些)、个人域网(诸如根据蓝牙特别兴趣小组(BluetoothSpecial Interest Group)标准化的那些)、蜂窝数据网络(诸如根据第三代伙伴项目(Third-Generation Partnership Project,3GPP)标准化的那些)以及具有无线连接或有线连接的其他类型的网络。例如,端点设备还可以通过总线接口(诸如通用串行总线(USB)类型连接、高清晰度多媒体接口(HDMI)等)达到至安全域的连接。
如在图1B的简化框图101中所示,在一些实例中,与IoT设备(例如,105a-d)的网状网络(其可被称为“雾”)进行通信的云计算网络或云端可以在云端的边缘操作。为了简化该图,没有对每个IoT设备105进行标记。
可以将雾170认为是大规模地互连的网络,其中数个IoT设备105例如通过无线电线路165与彼此进行通信。其可以使用由开放连接基金会(Open ConnectivityFoundationTM,OCF)在2015年12月23日发布的开放互连联盟(open interconnectconsortium,OIC)标准说明书1.0来被执行。该标准允许设备发现彼此并建立通信以用于互连。还可以使用其他互连协议(包括例如优化链路状态路由(OLSR)协议或移动自组织网络较佳方案(better approach to mobile ad-hoc networking B.A.T.M.A.N.)等)。
尽管在本示例中展示三种类型的IoT设备105:网关150、数据聚合器175、以及传感器180,但可以使用IoT设备105和功能的任何组合。网关150可以是提供云端160与雾170之间的通信的边缘设备,并且还可以充当用于传感器180的充电设备和定位设备。数据聚合器175可以向传感器180提供充电并且还可以定位传感器180。可以沿云端160通过网关150传递位置、充电警报、电池警报、以及其他数据或者这两者。如本文中所描述的,传感器180可以向其他设备或项目提供功率、位置服务、或这两者。
来自任何IoT设备105的通信可以沿IoT设备105之间的最方便的路径被传递以到达网关150。在这些网络中,互连的数目提供了大量冗余,这允许即使在损失数个IoT设备105的情况下也维持通信。
可将这些IoT设备105的雾170呈现给云端160中的设备(诸如服务器145)以作为位于云端160的边缘的单个设备(例如,雾170设备)。在该示例中,来自雾170设备的警报可以在不被识别为来自雾170内的特定IoT设备105的情况下被发送。例如,在不识别发送警报的任何特定的数据聚合器175的情况下,该警报可以指示需要返回传感器180以用于充电以及传感器180的位置。
在一些示例中,可以使用命令性编程风格来配置IoT设备105(例如,每个IoT设备105具有特定功能)。然而,可以以声明性编程风格来配置形成雾170设备的IoT设备105,这允许IoT设备105响应于状况、查询、以及设备失效来重新配置其操作并且确定所需的资源。例如,来自位于服务器145的用户的关于传感器180的位置的查询可能导致雾170设备选择回答查询所需的IoT设备105(诸如特定的数据聚合器175)。如果传感器180正在向与传感器180相关联的设备、传感器提供功率,则可以与该设备或其他设备上的传感器相配合地使用诸如功率需求、温度等以回答查询。在该示例中,雾170中的IoT设备105可以基于查询(诸如添加来自功率传感器或温度传感器的数据)来选择特定传感器180上的传感器。进一步地,如果IoT设备105中的某一设备不是运作的,例如,如果数据聚合器175失效了,则雾170设备中的其他IoT设备105可以提供代替物,允许确定位置。
进一步地,雾170可以基于传感器180和数据聚合器175的相对的物理位置将自身划分成较小的单元。在该示例中,可以沿传感器180的移动的路径向IoT设备105传递已经在雾170的一部分中被实例化的传感器180的通信。进一步地,如果将传感器180从一个位置移动到雾170的不同区域中的另一个位置,则可以将不同的数据聚合器175识别为传感器180的充电站。
作为示例,如果传感器180用于向化学工厂中的便携式设备(诸如个人碳氢化合物检测器)供能,则将把设备从初始位置(诸如储藏室或控制室)移动至化学工厂中的位置,该化学工厂中的位置可能距初始位置几百英尺至数千英尺。如果整个设施被包括在单个雾170充电结构中,则当设备移动时,可以在包括传感器180的警报和位置功能(例如,传感器180的实例化信息)的数据聚合器175之间交换数据。因此,如果针对传感器180的电池警报指示了需要对其进行充电,则雾170可以指示准备用于与便携式设备中的传感器180进行交换的经完全充电的传感器180的数据聚合器175。
随着IoT设备和***的发展,存在越来越大量的市场中可获得的智能设备和连接设备(诸如能够用于家自动化、工厂自动化、智能工厂以及其他IoT应用和***中的设备)。例如,在家用自动化***中,家的自动化通常随着添加更多的IoT设备以用于感测和控制家的附加方面而增加。然而,由于设备的数目和种类增加,所以对“物体”(或IoT***中包含的设备)变得非常地复杂和有挑战性。
可以利用预设的设置来配置一些设备管理应用,以允许用户快速地且配置设备的工作最小地建立他们的***。然而,那些设置可能不是普遍地期望的,这可能限制了它们的灵活性和总体实用性。实际上,对于一个用户而言理想的或最优的设定的组合可以是主观的,然而,其他用户仍可以对其他用户(该其他用户产生这些其他用户所期望的结果)所确定的设定值感兴趣。在设置是可配置的情况下,用户可能努力理解设定值的理想组合,求助于试验和错误来算出针对它们的***(例如,智能家居、办公室、轿车等)的最优设定。例如,第一用户的访客可以第一手地观察第一用户的***的配置并期望在他们自己的***中重新创建经观察的***的属性。然而,在传统的***中,假定通常将***与***设定关联以识别设备***,则***设定通常不是便携式可获得的。另外,改变应用的部署的参数可能需要在可能启动更期望的部署之前撤回和修正现有的服务。
在传统的***中,每个IoT设备具有其特有的设备的唯一媒体接入控制(MAC)地址或其他设备识别符。当第一次配置设定时,可以将用户定制设定与***中存在的特定的设备相关联。然而,在传统的***中,当用户利用另一个(例如,较新的)替代设备来替换该设备时,用户经常要求重新配置设备应用中的设定(包括设备识别符合设备MAC地址)。
考虑到智能设备的急剧的增长和IoT***的前景,已经对开发用于管理IoT应用中的设备、资源、服务等的管理工具做出了相当多的努力。IoT***的一部分前景是,用户可配置特定于用户的家、办公空间、或其他环境的定制的IoT应用。已经开发出工具(诸如IFTTT、智能家居(SmartThings)、Wink),并且已经开发出提供平台的其他***,终端用户可以通过该平台来开发使用了各自相应的平台所支持的各种组的设备的新的IoT服务。这样的服务开发工具已经被用于促进服务的定制的创建,以实现自动化应用(诸如智能照明、智能门锁、自动化安保、智能农业等)。
虽然IoT开发工具可以有助于实现带来了极大便利、舒适、能效和安全的新的自动化应用,但这样的***(和用户对这样的应用进行编程的开发工具)的缺点之一是人类介入通常仅限于预部署时间或开发时间。然而,在使用传统的IoT开发工具来开发新的IoT服务之后,用户程序员通常被排除在部署后时间或运行时中的服务内的决策循环之外。虽然传统的端对端交钥匙解决方案继续由有经验的技师或工程师来安装和配置,但可能期望IoT的增长主要集中在由具有很少或不具有正式培训或经验的非专业用户开发和安装的“自家酿造”的IoT服务上。新手用户虽然缺乏正式培训,但由于他们通常对部署物联网服务的领域具有优越的知识,因此可以很好地推动IoT服务的设计。
虽然已经定制了一些开发工具以简化IoT用户的预部署时间,但对运行时控制的有限的访问迫使许多用户在检查-修正周期中迭代预部署过程,以获得它们想要的部署后产品。例如,用户可以使用IoT开发工具来对智能照明脚本进行编程,以使用来自光传感器的照明度测量来确定是否打开灯泡(例如,如果光传感器读数小于12345,则打开灯泡;否则,关闭灯泡)。尽管基于该脚本来启动IoT应用可能是简单直接的,但是在部署后时间中故障排检和调试脚本可能较为困难。例如,虽然传统的IoT管理工具可以提供与配置机制以用于用户检查传感器值(例如,通过被提供具有对应的智能手机应用(app)的固定的预限定GUI),但缺少用户调整对IoT服务特定特性和/或用户开发者的偏好的呈现(可视化)的能力。进一步地,虽然IoT开发可以向用户提供控制以在预部署时间改变和调整IoT服务,但传统的***不允许人类在部署后时间重新配置被包含在服务逻辑中的参数(例如,光传感器读数阈值12345)。相反,传统的IoT开发工具要求用户首先对服务进行“解除部署”,转换回到预部署时间,并在重启经校正的服务之前修正程序。
在一些实现中,可以为改进的***提供增强以解决上述示例问题中的至少一些。例如,可以提供改进的IoT开发平台以便使得基于经限定的资产抽象的IoT服务的开发和创建成为可能。资产抽象可以显著地减少在部署和重新部署期间的人类触摸点,并且促进即兴的IoT***(包括允许用户的部署后介入的具有对应的用户界面的IoT***)的部署。例如,用户界面抽象可以将包含在资产抽象方案中,以允许自动化的和动态的对IoT应用部署的设备的发现和使用。用户界面抽象可以提供解决部署后时间的变化的机制(在不通过在预部署和部署后之间往返来重新部署的情况下),并且允许服务开发者限定所见即所得(WYSIWYG)抽象的用户界面,该用户界面对于IoT服务而言是合适的并在运行时期间使即时变化成为可能。
利用资产抽象,IoT管理和应用可以采用如下范例:在该范例中,代替参考和被编程以与特定的IoT设备进行交互操作,***可以参考IoT设备(或“资产”)的经抽象的类别、或分类。可以借助于资产抽象来自动地配置具有最小的人类干预的经部署的IoT***(包括对应UI)。实际上,在一些实例中,***的配置可以在用户不必实际制定使用哪个设备的情况下进展。相反,代替地,可以由***使用部署政策以自动选择和配置***内的设备的至少一部分。进一步地,资产抽象可以促进解决IoT应用的便携性的挑战,该挑战传统上已经限制了IoT应用的总体的可缩放性和弹性。
在一些情况下,可将资产抽象与自动化资产绑定相耦合,以消除在IoT引用或管理程序中包括设备/资产的唯一ID的必要性。与应用或管理程序一起被提供的资产发现可以提供用于制定政策并限制资产绑定的范围的有效方式。通过资产发现、资产抽象、和资产绑定的组合,使IoT应用是便携式的、可重复使用的、以及可共享的。
在一些实现方式中,利用资产抽象,只要资产落在分类中的相同的类别中(例如,占用感测、图像捕捉、计算等),则可以无差别地对待资产。结果,可使得IoT应用是便携式的、可重复使用的、以及可共享的,是因为可以在不指定意味着提供这些要求的精确的身份(或身份的目录)的情况下以仅指定要求的方式写入和存储该IoT应用。资产发现允许搜索全部可用的资源以检测满足要求的那些资源并且在一些实例中基于可定制的或基于政策的准则来进一步选择那些资源。
***(诸如本文中所示出的和所展示的那些***)可以包括以硬件和/或软件方式被实现的机器逻辑以实现被引入到本文中的解决方案并且解决以上的示例问题中的至少一部分(以及其他)。例如,图2示出展示了包括多个IoT设备(例如,105a-b)(该多个IoT设备具有能够用于各种不同IoT应用中的资产(例如,传感器(例如,110a、110c)和/或致动器(例如,115a))的***的简化框图200。在图2的示例中,向管理设备205提供部署管理器逻辑215(其以硬件和/或软件方式被实现)以检测位置内的资产并且识别利用经检测的资产来部署IoT***的机会。在一些实现方式中,可以将用于驱动IoT应用的功能的服务逻辑(例如,202)的至少一部分主存在管理***205上。还可以将服务逻辑(例如,202)主存(另外地或可替代地)在远离管理***205的一个或多个远程计算设备上,包括主存在IoT应用部署内所利用的设备(例如,105a-b)、环境(将在该环境中部署IoT应用)内的服务器、和/或基于云端的***(远离将部署IoT应用的位置)上。还可以将要用于配置资产(该资产被用在IoT***的部署中)的配置数据(例如,204、208)主存在管理***205远程服务器(例如,130)上或从一个或多个其他***(包括用户设备(例如,130)或远程(例如,基于云端的)服务器)由管理***205访问,以及其他示例实现方式。
在图2的特定示例中,管理***205可以包括一个或多个数据处理装置(或“处理器”)208、一个或多个存储器元件212、以及包含硬件和逻辑以允许管理***205利用一种或多种技术(例如,WiFi、蓝牙(Bluetooth)、近场通信(Near Field Communication)、Zigbee、以太网等)在一个或多个网络(例如,120)上与其他***和设备(例如,105a、105b、130、210等)进行通信的一个或多个通信模块214。可以利用处理器208可执行的编码来实现部署管理器215以管理本地IoT***的自动化部署。在一些情况中,可以在专用物理***(例如,与IoT部署中的其他设备相分开的专用物理***)上实现管理***205。例如,管理***205可以在网关设备上实现以促进与特定位置内的多个可能的IoT设备(例如,105a、105b)的通信以及特定位置内的多个可能的IoT设备(例如,105a、105b)之间的通信。在一些实例中,可以将管理***205至少部分地主存在用户设备(例如,130)(包括将其自身利用在特定IoT应用的部署中的用户设备)上。实际上,可以将管理***205(以及部署管理器215)的部分实现在多个设备(包括远离要在其中部署IoT应用的环境的一些设备)上。
在一个示例中,可以提供包括了逻辑部件(诸如资产发现模块220、资产抽象管理器225、资产绑定管理器230、配置管理器235、运行时管理器240、以及安全引擎245以及其他示例部件(或上述部件的组合))的部署管理器215。部署管理器215可以访问本地(或远程地存储的)服务逻辑202、配置数据204、以及用户界面(UI)模型206,以及其他示例。
在一个示例中,资产发现模块220可以提供允许管理***205确定哪些IoT设备(例如,105a、105b、130)在管理***205的范围内并且因此落在可部署一个或多个IoT服务的特定位置内的功能。在一些实现方式中,资产发现模块220利用管理***205的无线通信能力以试图与特定半径内的设备进行通信。例如,可以检测从管理***205的(一个或多个)通信模块214(或资产(例如,105a、105b)的(一个或多个)通信模块(例如,288、290)))的(一个或多个)天线发射出的WiFi或蓝牙信号范围内的设备。当确定了对于给定的***或应用而言设备是否适于包含在设备集合中时,可以由资产发现模块220来考虑附加的属性。在一些实现方式中,可以限定条件以用于确定设备是否应当被包括在集合中。例如,资产发现模块220不仅可以尝试识别能够接触特定资产,还可确定资产的诸如物理位置、语义位置、时间相关性、设备的移动(例如,该设备是否在与发现模块的主机相同的方向上和/或以与发现模块的主机相同的速率移动)、设备的权限级别要求或访问级别要求、以及其他特性。作为示例,为了在针对类似家的或类似办公室的环境中部署每个房间的智能照明控制,可以基于“每个房间”来部署应用。相应地,资产发现模块220可以确定被识别(例如通过设备所报告的地理围栏或语义位置数据)为在特定房间内的设备的列表(尽管资产发现模块220能够与落在所期望的语义位置外的其他设备进行通信和检测落在所期望的语义位置外的其他设备)。
可以在特定IoT应用的服务逻辑(例如,202)中限定用于发现的条件。例如,可以限定准则以识别需要或期望哪种类型的资源来实现应用。这样的条件可以超出接近度,并且包括对该应用要使用的特定类型的资产的识别。例如,资产发现模块220可以附加地识别设备的属性(诸如其模型或类型)通过与设备的初始通信,并且由此确定什么资产和什么资产类型(例如,特定类型的传感器、致动器、存储器和计算资源等)被设备主存。相应地,可以基于资产抽象(或资产分类)限定针对IoT应用所限定的发现条件和准则。可以限定特定于特定资产类型的某一准则,其中在对应的IoT应用的情境中,准则对于一些资产类型具有重要性,但是对于其他资产类型不具有重要性。进一步地,某一发现准则可以是可配置以使得用户可以定制限定用于选择对于IoT应用进一步而言利用哪些设备的准则或参考中的至少一些准则或参考。
***管理器215还可以包括资产抽象模块225。资产抽象模块225可以识别特定IoT设备之间或更一般地特定功能之间的经限定的映射,该特定功能可以被包括在具有经限定的分类或设备抽象的集合的各种现有IoT设备或未来IoT设备中的任一个设备中。资产抽象模块225可以针对资产发现模块220所发现的每个资产来确定资产所“属于”的相应的资产抽象或分类。每个分类可以对应于资产的功能能力。可以将已知的资产或被确定为拥有该能力的资产分组在对应的分类内。可以确定一些多功能资产属于多个分类。在一些情况中,资产抽象模块225可以确定(一个或多个)抽象,该(一个或多个)抽象基于从资产接收的信息(例如,在被资产发现模块220发现期间)要被应用于给定的资产。在一些情况中,资产抽象模块可以从每个资产获取识别符并对与制造资产的模型相对应的预定抽象分配来对后端数据库进行查询,以及其他示例。进一步地,在一些实现方式中,资产抽象模块225可以查询每个资产(例如,根据经限定的协议)来确定资产的能力的列表,资产抽象模块225能够将资产从该列表映射至一个或多个经定义的抽象分类。资产抽象模块225允许应用将落在给定的分类内的每个资产视作该分类的实例,而不是迫使部署管理器215追踪它可能被要求管理的每个可能的设备模型或要设计为考虑特定类型设备的每个可能的置换的服务逻辑202。资产抽象模块225可以访问分类框架(基于应用基础、***基础、或通用基础来对该分类框架限定),该分类框架将精确的设备抽象成包括用于感测、致动、计算、存储的较高级别分类和较低级别分类以及其他分类的分类。利用资产抽象,只要资产落在分类(例如,占用感测)中的相同的分类内,就无差别地对待资产。可以部分地通过资产抽象使IoT应用的部署(该部署通过IoT应用的对应的服务逻辑202以及配置204被实现)自动化,这允许在不关注用于***中的设备的特定身份的情况下开发和部署应用。
部署管理器205还可以包括资产绑定模块230,该资产绑定模块235可以从被发现的资产中选择对于***部署哪些资产。在一些情况中,基于选择资产,资产绑定模块230可以与配置管理器235一起操作来发送配置信息(例如,204),以选择资产来使对应的资产各自被配置为用于特定的服务中。这可以涉及:利用对应的服务逻辑代码对资产进行配设(例如,以允许该资产与网关、由后端服务器主存的服务、和/或选择用于部署的其他资产进行通信和交互操作),登入、解锁、或以其它方式开启资产,向该资产发送会话数据或请求与该资产的会话,以及其他示例。在已经识别了相同分类的多个资产(并且超过分类的实例的最大的所期望的数目)的情况中,资产绑定模块230可以附加地评估该资产中的哪个资产是最适合于部署的。例如,服务逻辑(例如,202)可以限定绑定准则,该绑定准则指示了要部署在应用中的资产的期望的属性。这些准则可以是应用于每个分类的实例的全局准则,或可以是分类特定的(即,仅应用于相同分类内的资产之间的判定)。资产绑定可以配设服务逻辑(例如,202)所指定的资产以用于自动部署(在运行时之前或在运行时期间)。
部署管理器215可以附加地提供(例如,通过配置管理器235)允许将配置或设定应用于应用210的经选择的资产分类(或要求)以及应用于应用210总体上的功能。可以取决于由应用和应用的总体目标要使用的资产的集合来提供各种不同设定。可以限定默认设定值,并且可以进一步提供工具向以允许用户针对该设定(例如,空气调节器的优选的温度设定、用于锁上智能锁或储物柜的秒数、用于触发运动传感器和控制的灵敏度设定等)限定他们自己的值。构成“理想”的设定可以是主观的并且涉及一些用户的修补。当用户对设定满意时,用户可以保存设定作为配置。在一些实现方式中,可以将这些配置(例如,204)本地保存在管理***205处、保存在设备(例如,105a、105b)处、保存在IoT网关150上、或保存在云端上。在一些情况中,可以共享配置,以使得用户可以将他们认为理想的设定与其他用户(例如,朋友或社交网络联系人等)共享。
每当要部署对应的服务时(例如,使用当前在特定位置可发现的任何资产)时,可以生成配置数据,部署管理器215在运行时自动地从该配置数据中重新采用该设定。结果,虽然可能仅松散地将特定设备与在服务的特定部署中的任何一个用户或网关相关联,但设定可以紧密地与用户或服务相关联以使得用户可以在多个环境之间迁移,并且可以将服务部署在各种环境中(包括具有不同组资产的、具有应用在每个环境中的相同设定或配置的环境)。例如,不管被选择以满足应用或服务的经抽象的资产要求的特定的设备识别符或实现方式如何,都可以应用相同设定(例如,如也涉及对资产(即,并非特定资产)的抽象的设定)。在不将特定设置应用于分类的经选择的实例的程度上,可以忽略设定。如果分类的经选择的实例拥有配置中的用户未限定的设定(例如,是因为它们对于特定资产是唯一的),则可以自动地设置这些设定的默认值,或可以警告用户这些设定是未限定的,以及其他示例。
配置管理器235可以附加地在运行时(例如在IoT***的部署期间或跟随IoT***的部署)使用,以使特定设定被应用于被选择用于与服务一起部署的IoT设备(资产)。部署管理器215(以及其组成模块)可以包括使部署管理器215能够使用各种不同的协议来与各种不同的设备进行通信的逻辑。实际上,甚至可以使用部署管理器215在协议之间转变以促进资产对资产通信。进一步地,配置管理器235可以向用于部署的经选择的资产中的每一个发送指令,以提示每个资产来根据针对被限定在配置数据(该配置数据在部署期间(并且可能也在部署之后)被推送至(或提取自)配置管理器235)中的设定配置中的资产分类限定的那些对设定进行调整。
可使得利用使用了部署管理器215来增强的网关的***能够将自动资源管理/配设与服务的自动部署相组合。配置管理器235可以允许将来自一个IoT***的资源配置实施于另一个IoT***上或应用至另一个IoT***,以使得可以将服务部署在各种IoT***中。进一步地,能够利用运行时管理器240来执行从运行时的部署得到的服务的自动化部署和管理。自动配置可以指具有在本地存储的设备的配置(例如,204)或在远程节点上存储的设备的配置,以向资产(以及它们的主机设备)提供配置信息来允许恰当地配置资产以在对应的IoT应用部署内操作。作为一个示例,可以向设备提供设备可使用的配置信息以调整设备上的话筒传感器资产,从而使得可以恰当地检测某些声音以用于特定的IoT***(例如,调整话筒以利用改进的增益来检测特定的语音音高)。服务的自动部署可以涉及可用的设备的识别(或发现)、基于服务要求的设备选择(或绑定)(配置选项、平台、以及硬件)、以及自动化连续部署(或重新部署)以允许服务适配为演进的条件。
在一个示例中,运行时管理器240可以用于指导特定位置(例如,对应于实现了管理***205的网关的位置)内的一组设备上的服务的部署和运行。在一个示例中,运行时管理器240可以触发与特定应用的部署相联系的资产发现和绑定(例如,通过资产发现模块220和资产绑定管理器230)。提供运行时管理器240可以访问为了特定应用或服务对服务逻辑202进行访问,并且该应用管理器240可以与经部署的服务(例如,105a-b、130等)进行通信以根据对应的服务逻辑202来向设备发射数据(例如,以提示某些致动器)或从设备接收数据(例如,传感器数据)。运行时管理器240还可以利用服务逻辑并提供经接收的数据作为至逻辑的输入,并且利用服务逻辑202来生成结果(该结果包括可以用于提示经部署的设备上的某些致动器的结果)。在一些情况中,这些结果的生成可以包括利用在远程执行的服务逻辑,例如,通过将请求发送至后端服务。还可以将运行时管理器逻辑240用于与安全管理逻辑245相联系以限定部署内的安全域,例如以保护经部署的设备中的一个或多个设备的通信与网关之间的通信和/或设备自身之间的通信。
应用或服务逻辑的部分可以在部署期间分发,其中,服务逻辑能够在网关(或甚至部署计算资产中的一个资产)处本地地执行和/或远离部署位置在基于云端的***或其他远程定位的***上。实际上,在一些情况中,管理***205(例如,使用运行时管理器240)可以将用于在IoT应用的部署期间使用的服务逻辑提供给一个或多个资产或它们的主机设备(例如,105a、105b)。在一些情况中,管理***205(以及运行时管理器240)可以管理多个不同应用的部署和执行(例如,利用对应的服务逻辑202的集)。还可以由单个管理***(或网关)来支持相同的应用的不同配置(例如,使用不同配置数据实例)。一旦资产被配设,则可以共同地使用经部署的资产以用于达到设计用于应用的目标和功能。
在一些IoT应用中,可以限定一个或多个UI资产,并且可以在IoT应用的部署内部署设备以提供一个或多个UI来促进部署的运行时管理。在一些情况中,可以已经在UI资产(例如,用户设备或其他用户界面平台(例如,智能家庭控制监护仪)等的UI资产)上呈现了UI逻辑和功能,而在其他情况中,可以将UI逻辑配设在管理***所需求的经选择的资产上,以补充已经在设备上的UI逻辑和功能或由已经在设备上的UI逻辑和功能来使用。例如,UI模型(例如,206)可以限定可与IoT应用部署相联系地被配设在UI资产上的各种类型的UI和UI特征。IoT应用UI可以包括:图形用户界面(GUI),用户通过该图形用户界面来接收输出和/或提供输入(例如,通过触摸屏);语音界面(能够通过该语音界面接收语音命令);基于手势的界面(例如,利用相机来捕捉用户手势的基于手势的界面);音频界面(例如,通过该音频界面经由设备上的扬声器来呈现数据);以及其他示例。UI模型能够提供逻辑以有助于实现这样的UI中的任何一个UI。
如上所述,可以以各种方式来在IoT应用部署内利用用户设备(例如,130)。用户设备可以拥有管理***功能、IoT服务开发***(例如,210)的功能,其可以用于控制或管理特定IoT应用(例如,通过被提供在设备130上的IoT应用的UI)或者提供用于特定IoT应用部署中的其他资产(例如,传感器、致动器、计算、或存储)。在一个示例中,用户设备130可以包括UI引擎265,该UI引擎265可用于特定IoT应用部署中,以提供一个或多个UI用于由用户与部署相联系地使用。用户设备130可以包括:一个或多个数据处理器(例如,266);一个或多个存储器元件(例如,268);通信模块270,该通信模块270使用无线网络连接和/或缆线网络连接来使得与其他***的通信成为可能;以及操作***272,可以在该操作***272上运行一个或多个应用(例如,274)。用户设备130可以包括一个或多个输入设备276,该一个或多个输入设备276可以体现于实现了触摸屏界面、键盘、跟踪球、相机、或通过其能够捕捉用户输入的其他机制的传感器。用户设备130还可以包括一个或多个呈现设备278(例如,由对应的致动器所驱动的)以实现图形显示、音频呈现(例如,扬声器)、光输出(例如,集成LED手电筒或相机闪光灯的光输出)、或者用于输出基于振动的信号的振动电机,以及其他示例。输入设备和呈现设备可以与驱动这些设备的操作的UI引擎265以及用户设备(例如,130)的存储(例如,268)和计算(例如266)资源一起地用于满足特定IoT应用的UI要求,这造成与特定IoT应用的部署相联系地部署用户设备(例如,130)。
如以上所述,资产抽象不仅可以辅助简化***的部署并且跨多个不同***传播配置,而且抽象还可以用于增强对IoT应用的编程。例如,可以提供开发***210,用户可以通过该开发***210限定和创建新的IoT应用或服务。例如,开发***210可以被提供具有传统文本编程工具和/或图形编程工具(例如以用于对应用进行编码)并且可以利用声明性编程工具来增强开发***210,该声明性编程工具允许用户(包括新手程序员)通过指定IoT***的一般化的或经抽象的要求(该要求被表达为资产分类的集合)来对服务进行编程。用户可以附加地声明经选择的分类之间的两个或更多个分类之间的关系,以指示输入-输出、传感器-致动器、或在对应的应用代码中自动地限定的其他关系,并且因此基于这些抽象来开发新的IoT应用(以及对应的服务逻辑(例如,202))。这样的开发范例可以允许IoT应用被编程一次并且在理论上部署在任何地方(使用设备的各种组合来部署在各种环境中)。
在一个示例中,开发***210可以包括用于实现开发引擎250的一个或多个处理器246以及一个或多个存储器元件248。在一些情况中,可以将开发***210与用户设备(例如,130)和/或管理***(例如,130)相整合。开发引擎250可以提供界面,用于可以通过该界面生成对应于要部署在一个或多个环境中的IoT应用的服务逻辑202。开发引擎250可以包括用于允许用户通过限定一组资产要求和该组资产要求之间的关系来限定服务的要求限定255部件。可以根据资产抽象(例如,从资产抽象限定260的库中构建该资产抽象)来限定资产要求,并且允许用户根据能力抽象限定服务,其进而在部署期间可以被转换成资源抽象,该资源抽象可以映射至在服务的特定部署期间被发现(例如,由部署管理器215)的真实设备。资产抽象限定260中的一些可以包括UI资产抽象,以进一步允许用户限定对于使用开发引擎250所创建的服务的UI要求。得到的服务逻辑(例如,202)同样地可以允许UI平台与剩余的IoT应用部署一起以自组织和即兴的方式被部署(例如,与给定的部署相联系,基于管理***(例如,205)可发现的存在的一组可用的设备和资产)。实际上,作为通用方式,可以在将用于实现服务的物理设备的身份之前并且独立于该物理设备的身份来通过开发***210使用资产抽象限定开发IoT服务,并且可以基于经限定的抽象在稍后并且自动地在对应的服务逻辑中部署物理部署。
继续图2的描述,IoT设备中的每一个设备(例如,105a、105b)可以包括一个或多个处理器(例如,284、285)、一个或多个存储器元件(例如,286、287)、以及一个或多个通信模块(例如,288、290)以促进它们参与到各种IoT应用部署中。每个设备(例如,105a、105d)可以拥有唯一的硬件、传感器(例如110a)、致动器(例如、115a)、以及其他逻辑(例如,292、294)以实现设备的(一个或多个)预期的功能(包括相应的传感器和致动器的操作)。例如,设备可以被提供有如下这样的资源:各种类型的传感器(例如,110a、110c)、各种类型的致动器(例如,115a)、能量模块(例如,电池、太阳能电池等)、计算资源(例如,通过相应的处理器和/或软件逻辑)、安全特征、数据存储、以及其他资源。
转到图3A,示出表示资产抽象的简化示例的简化框图300a。可以在不同的级别处限定各种不同分类。例如,传感器分类可以对于多个特定传感器类型分类(例如,光线感测、运动感测、温度感测、液体感测、噪声感测等的子分类)而言是父代的以及其他示例。在图3A的示例中,已经将IoT应用限定为包括由分类“移动传感器305a”、“计算305b”、以及“警告305c表示的三个资产要求。”在资产发现期间,可将各种资产(例如,308a-f)识别为应用可使用的(例如,基于资产满足一个或多个经限定的发现条件)。可以对于资产308a-f中的每一个资产识别一个或多个对应的分类或抽象(例如,通过IoT管理***)。抽象中的一些可能不与资产要求和应用的功能相关(诸如针对温度调节设备308f)的抽象(例如,温度传感器和/或HVAC致动器)。其他资产抽象可以匹配在IoT应用中被指定作为应用的资产要求的抽象(例如,305a-c)。实际上,可能有超过一个被发现的资产适合资产要求中的一个要求。例如,在图3A的示例中,将PIR传感器308a和相机308b各自识别为运动感测资产分类305a的实例。类似地,将基于云端的计算资源308c和网络网关308d识别为计算资产分类305b的实例。在其他实例中,可能只有单个被发现的设备满足应用资产要求(例如,警告分类305c的警报器308e),以及其他示例。
常规地,已经将IoT和无线传感器网络(WSN)应用开发为精致地限定一组物理设备中的数据流,这涉及开发时的设备级别发现以获取和硬编码对应的设备识别符和特性。通过利用资产抽象,可以促进开发以允许当运行时发现和确定设备(例如,在应用的启动时),附加地允许应用在***和分类实例之间是便携式的。进一步地,可以通过允许开发者仅指定资产要求(例如,305a-c)来加快开发,而无需理解无线电协议、网络拓扑、和其他技术特征。
在一个示例中,资产抽象的分类可以涉及如以下这样的父代分类:感测资产(例如,光、存在、温度传感器等)、致动(例如,光、HVAC、机器控制器等)、电源(例如,电池供电的电源、地线供电的电源、太阳能供电的电源等)、存储(例如,SD、SSD、云存储等)、计算(例如,微控制器(MCU)、中央处理器(CPU)、图形处理单元(GPU)、云端等)、以及通信(例如,蓝牙、ZigBee、WiFi、以太网等)、以及其他可能的示例。可使用各种方法来执行发现哪些设备拥有哪些能力(以及属于哪些分类)。例如,可以从由***管理***经由通用描述性语言(例如,ZigBee的介绍、蓝牙的介绍、以及开放互连联盟的说明)从设备接收的信号直接地获取一些功能(例如,感测、致动、通信),同时可以通过较深度的查询来获取其他特征(例如,电源、存储、计算)(利用被查询的设备的操作***上的资源或通过对远程服务的查询),以及其他示例。
可以应用资产绑定来确定事实上要部署哪些被发现的资产(适合限定用于应用的资产要求(抽象))。可以在开发时限定准则和/或在运行之前/在运行时由应用的用户来限定准则,IoT部署管理器(例如,205)可以咨询该准则以便执行绑定。例如,如图3A中所示,根据针对应用(或者针对使用了应用的特定会话)的所阐述的准则,可以选择针对所需的分类的多个匹配的资产中的一个资产。例如,在PIR传感器308a和相机308b之间对应的准则(例如,要基本上在应用的所有分类和/或特定于运动感测分类305a的分类中应用的准则)可以导致选择要部署PIR传感器308a以满足应用的运动感测资产要求305a。类似地,可以访问准则以确定在网关308d与云端资源308c之间该网关308d是用于满足应用的计算要求305b的最佳候选。对于资产要求(例如,305c)(其中仅发现了资产分类的单个被发现的实例(例如,308e))而言,资产绑定是直接的。可以自动地将来自IoT部署管理器(例如,205)的或由该IoT***管理器配置的资源配设给已经被选择的或被绑定的那些被发现的设备(例如,308a、308d、308e)以部署应用。未选择的资产(例如,308b、308c、308f)可以留在环境中,但未使用在应用中。在一些实例中,可以将未选择的资产识别为可替代的资产选择(例如,在被选择的资产中的一个资产失效的情况下),这允许了快速替换资产(对于对应的分类的示例,利用相同的设定来进行部署)。
在一些实例中,可以将资产绑定建模为二分匹配(或分配)问题,在该问题中,可以通过G=(R,A,E)(其中,R表示资产要求,A表示可用的资产,并且E中的e=(r,a),其中A中的a能够是R中的r)来表达二分图。注意到如果R请求特定资产中的n个实例,则可以将A限定为:’
从上式中可以计算出(最大)(权重)匹配问题的解。例如,当二分图中的的数目小并且从仅当a能够是r时才存在边缘(r,a)的意义上来讲边缘受约束时,可以应用穷举搜索。
转到图3B的简化框图300b,表示资产发现的一个示例。资产发现可以允许基于发现条件或准则(诸如与设备接近度、房间、建筑物、移动状态、移动方向、安全性、权限相关的条件,以及许多其他可能的(以及可配置的)条件)来限制可用的设备的范围。由于未检查的发现将返回许多可能的绑定(特别是在大规模的部署中),所以这样的目标发现的益处可以渗透至资产绑定上。例如,在智能工厂中,由于在工厂的设施中存在数百个传感器、电机、警告等,所以“部署预见性维护”的动作可能是模糊不清的。在一些实现方式中,将资产发现作为输入政策或用户输入,可以从该输入政策或用户数据中识别一组发现准则。基于检测资产的总体(应用可能利用该总体来操作),准则可以用于限制该组,在一些情况中,提供可用资产的得到的经排序的列表,这可以将其表达为f:C×D→D,其中,C表示准则,D表示一组设备,并且陪域是经完全排序的组。
例如,在图3B的示例中,识别两个发现准则315a、315b以用于应用。可以限定仅应用于资产的类别或分类中的一些类别或分类或特定一个类别或分类的附加的准则。基于该示例中的经限定的准则315a-b,根据搜索准则A315a的发现的输出导致环境中的设备的子集的陪域—LS1(310a)、LS2(310b)、GW2(310g)以及LA1(310h),而搜索准则B导致LS2(310b)、LS3(310c)、TS1(310d)、HS1(310e)、GW1(310f)、以及LA1(310h)。基于一组经限定的发现准则(例如,315a-b),资产发现可以尝试将经识别的资产的总集合减少至最佳解决方案。另外,基于应用的资产要求,确定用于绑定考虑的一组被发现的资产可以包含确定被发现的设备的最小组。例如,如果可能的话,可以在发现期间选择最小组以使得每个所需的分类中的至少一个资产存在于该组中。例如,在图3B的示例中,可以识别到(例如,通过部署管理器的资产发现模块),在发现中仅有准则B(315b)的应用产生了针对被限定用于应用的分类中的每一个分类的至少一个资产。
例如,图3C的框图300c展示针对特定IoT应用350的部署管理器的端对端部署确定。例如,基于图3B的示例中实施的发现,“发现”了可能由应用使用的资产的子集(例如,LS2(310b)、LS3(310c)、TS1(310d)、HS1(310e)、GW1(310f)、以及LA1(310h))(例如,基于它们与准则B的依从性(以及依从于准则的资产的代表名额不足))。相应地,尽管每个资产是应用350的资产要求(例如,“光感测”、“计算”、以及“存储”)之一的实例,但不将资产LS1和GW2绑定至对应的IoT应用350(如虚线(例如,330)所指示的那样)。
如上所述,可以在资产绑定期间限定和应用附加的准则。在绑定期间(在该绑定期间被发现的资产的组包括超过一个特定的所需的资产分类(例如,如资产分类“光感测”中的资产L2和L3)),可以应用准则以自动地选择更加适合部署在受管控的、受控制的、或者以其他方式被应用350支持的IoT***内的资产。进一步地,如图3C中所示,单个资产实例(例如,GW1)可能同时属于两种或多种分类,并且被选择用于绑定至应用以用于两个或更多个对应的资产要求(例如,“计算”和“存储”),如所示的那样。实际上,可以限定绑定准则以有利于可以通过单个资产来促进应用的多个资产要求的机会,以及其他示例。
如在图3C中总体上所表示的,资产发现能够提供限制“资产至应用”资产要求映射的范围的第一级别。用户或开发者可以指定(在一些情况中,在紧邻运行时前)针对特定应用350的资产要求,并且可以评估环境来确定资产是否可用以满足这些资产要求。进一步地,如果在环境中发现必须的资产组合,部署管理器实用程序可以自动地部署并配设被发现的资产以实现该应用。附加地,部署管理器实用程序可以根据与应用相关联的用户所限定的配置自动地跨经部署的资产来应用设定值。然而,如果没有发现资产要求(所需的分类)中的一个或多个要求的实例,则可以确定应用不可部署于环境内。在这样的情况中,部署管理器实用程序可以生成警报以用于用户识别被请求的分类实例的短缺,包括识别对于该分类没有在环境内发现资产实例的那些分类,以及其他示例。
转至图4A-4B,示出表示了在IoT应用(预部署以及部署后)的实现方式中使用的示例IoT抽象层的简化框图400a-b。例如,在图4A的示例中,抽象可以包括UI抽象(例如,405、410、415)以及逻辑执行抽象(例如,420)、传感器抽象(例如,425)、以及致动器抽象(例如,430),以及其他示例。可以限定各种抽象层,包括能力抽象层435、资源抽象层440、和运行时抽象层445。可以在对服务进行编程期间利用能力抽象层435,每个能力抽象对应于要被包含在IoT服务中的能力或功能。每个能力抽象可以进一步映射至资源抽象层440中的一个或多个资源抽象。每个资源抽象可以对应于一种资源或一类资源(抽象了精确的设备模型、MAC、序列号等),诸如光传感器、IP相机、计算资源、存储资源、电源开关、话筒、温度传感器、智能温度调节器等。
在服务部署期间,管理***可以确定能力抽象与映射至能力抽象的资源抽象之间的映射。在其他情况中,从部署期间所选择的能力抽象生成的服务逻辑可以包括或导出映射,并且服务逻辑的执行可以导致要被管理***所识别的资源抽象,以及其他示例实现方式。管理***可以在资产发现期间利用资源抽象以确定哪些资产可能满足对应的IoT应用的要求(例如,由能力抽象所指定的要求)。如上所述,资产绑定可以涉及选择可能的多个符合要求之一的资产以用于特定资源抽象的管理***。例如,在图4A的示例中,“光感测”能力435可以映射至两个可能的资源抽象:“光传感器”和“IP相机”。两个光传感器L1和L2可以在环境中(由管理***)与两个不同的IP相机(例如,IC1、IC2)一起被发现。在特定的示例中,管理***选择光传感器L1以用于部署(例如,基于一个或多个绑定准则),并且将经选择的光传感器L1映射至运行时抽象“光感测450”。基于选择(和绑定)特定的、被发现的设备,服务逻辑可以通过引用其相应的运行时抽象(在运行时抽象层445中)与经选择的资产交互。每个运行时抽象可以对应于针对IoT应用所限定的能力抽象之一,并且可以表示IoT服务相对于经部署的资产的运行时、部署后的视图。
IoT解决方案通常将IoT资源限定为原子资源,其中,每个能力映射至单个类型的设备。然而,一些能力可以通过识别事实上通过多个不同的资源相结合地(或资源的“复合物”)实现了单个能力来定义。其他能力可以仍由单个原子资源实现。在各种UI能力的情境中,可将UI定义为资源的混合物。例如,如图4B中的映射400a的局部视图所示,能力抽象405“UI日志”可以映射至三个资源抽象(即,复合资源),即“显示”、“计算”以及“存储”。换句话说,一对多关系可以存在于能力抽象和对应的资源抽象之间。对于原子资源(诸如对于“光感测”能力抽象425),可作出一对一的能力对资源映射。当将分立的物理设备或资产绑定至资源抽象时,单个设备(诸如智能手机SP2)可以映射至多个资源抽象。实际上,单个设备可以满足复合资源,诸如图4B的示例中所示。
在图4A的示例中,将三个UI能力抽象包括在示例IoT服务限定中。例如,可以提供“UI拨号”能力抽象,该“UI拨号”能力抽象识别对IoT应用部署包括通过拨号UI元件(例如,用于调整IoT服务中所使用的特定值的WYSIWYG拨号)来实现的UI输入的期望。在该示例中,为了实现“UI拨号”能力,可以利用触摸屏资源和计算资源,并且在一些情况中,可以在多合一设备内利用触摸屏资源和计算资源,可以将其表示为如下:
其中,表示“UI拨号”的能力,表示“UI输入”(用于输入的全部UI的集合),并且r计算、r显示分别表示计算和显示的资源。可以根据相似的基础来限定其他UI输入能力,每个不同的UI输入能力表示特定风格或类型的输入GUI元件(例如,拨号、开关、按钮、滑块、以及其他可能的非限制性的其他变体)。输出UI能力可以同样地是多种多样的,并且可以一般被限定为与输出UI能力“UI日志”相似:
其中,表示“UI日志”的能力,表示“UI输入”(用于输出的全部UI的集合),并且r计算、r存储、r显示分别表示计算、存储和显示的资源。还可以将其他输入UI能力(不同于日志风格的UI输出)限定和包括在能力抽象的库中,从该库中可以限定和开发IoT服务。进一步地,当图4A-4B中的示例示出显示中央UI能力抽象,在一些实现方式中,UI可以包括非显示UI,诸如利用语音/话音识别技术、音频输出、手势识别、触觉输出或振动输出的UI以及其他UI示例。
如上所述,能力抽象层430中的资产抽象可以在预部署时间或开发时间期间用在创建IoT服务中。例如,如图5A的示例屏幕截图500a中所示,IoT服务开发工具可以支持IoT服务的图形开发。例如,用户可以选择(例如,从能力抽象的库中)对应于各种能力抽象(和能力)的各种图形框(例如,505、510、515、520、525、530),用户期望该各种图形框包括在IoT***内,并且将这些框拖放到开发窗口535中。另外,用户可以绘制或以其他方式限定框之间的连接器以限定各种经选择的框(例如,505、510、515、520、525、530)之间的关系和交互。例如,在图5A的特定示例中,正在开发智能照明控制服务(该智能照明控制服务具有与图4A-4B中的示例中示出的那些能力相似的能力),其中,将光传感器能力505链接至逻辑执行能力510,该逻辑执行能力510执行由光传感器能力505测量的值与由UI输入能力515(使用拨号UI元件来设定该UI输入能力515)限定的阈值之间的比较。在常规***中,可以在IoT服务的编程期间确定阈值并将阈值设定为常数。然而,在图5A的示例中,提供UI用于IoT服务的部署,以允许用户在部署后修改该阈值。逻辑执行能力510随后可以向光开关能力520提供其比较的结果。另外,可以提供UI能力525、530以促进UI输出并且提供记录了光传感器值(例如,在525处)和逻辑执行能力510的结果(例如,真/假、开/关等)以及其他示例的日志。
逻辑执行能力510(像是UI能力)可以采用特定于所限定的对应的IoT服务的许多(可能无限多的)形式。实际上,逻辑执行能力(例如,510)可以体现用于限定功能、计算、或要在数据(该数据由一个或多个传感器能力生成并可能被提供至致动器资产以实现IoT服务的一个或多个动作或活动(例如,使光的打开自动化))上执行的处理步骤的服务逻辑中的一些。例如,逻辑执行能力可以通过UI资产来提供传感器数据和/或输入的预处理或后处理,包括由IoT服务中的一个或多个其他资产生成的返回到数据中的多个值的处理。
使用图形编程(或文本编程)范例,用户可以使用能力抽象来限定新的IoT服务的能力连同能力之间的关系,如图5A的示例中所示。可以通过编程工具来生成服务逻辑以体现能力。该服务逻辑随后可以用于对应的IoT服务的任何数量的不同的、自动化的部署中(使用满足IoT服务的能力抽象要求的设备的可能许多不同的组合)。例如,如图5B的框图500b中所示,对应于基于图5A中所表示的图形编程来开发的示例服务的服务的一个示例部署可以造成特定光传感器设备550绑定至服务中所限定的光感测能力(例如,505),并且可以将自动化的光开关555绑定至服务中所限定的光开关能力(例如,520)。可以将第一智能手机设备560选择为包括映射至“UI拨号”UI能力和“小于”逻辑执行能力抽象(例如,如图4A中所示)的显示资源、计算资源和存储资源,同时将第二智能手机设备565选择为提供映射至被限定用于IoT服务的“UI日志”能力抽象的显示资源、计算资源和存储资源。在其他情况中,可以选择单个智能手机以替换该特定示例中所选择的两个分开的智能手机,只要单个智能手机包括满足了映射至IoT服务的相应的能力抽象(例如,“UI拨号”、“UI日志”、“小于”逻辑等)的资源抽象要求的资源。
转到图6,如上所述,如本文中所述的那样的根据资产抽象的原则开发出的应用可以允许将给定的IoT应用部署在采用了IoT设备和资产的各种集合的数个位置中。可以响应于检测到充足的资产存在于管理***的范围内(例如,在特定的网关设备(例如,150a、150b)上)来自发地部署这样的IoT应用或服务。基于识别和选择用于部署的资源,管理***可以向经选择的资产提供配置,以用于在IoT应用的特定部署期间限定资产的特性。在一些情况中,可以在相同的IoT应用的不同的部署中采用不同的配置,这可能导致每个部署中(包括是以其他方式相同的部署中(例如,在类似的环境中使用的IoT设备的相同的组合))的不同的成果。在其他情况中,可以在利用了设备的不同组合(例如,绑定至IoT应用的经限定的抽象中的至少一部分抽象的不同设备)的区别的配置中采用相同的配置以产生类似的成果,即使当所使用的设备不是相同的。作为一个示例,用户可以限定用于特定IoT应用的特定的配置中的优选的设定,并且可以使特定IoT应用(在其他位置中)的不同的部署在被部署时也采取用户的优选的设定。例如,频繁旅行者可以优选创建类似家的环境(例如,在酒店、办公室、或者远离他们的家的度假租房)通过使由用户限定的特定配置数据(例如,主存在云端605)应用于存在可部署的设备的每个环境。相应地,特定配置数据(例如,204)可以用于全部以相同的设定来部署IoT应用的多个实例(利用可能不同的设备)。
例如,如图6的简化框图600中所示,在第一环境610中,第一网关150a可以用于部署特定IoT应用的第一实例。可以将用于实现IoT应用的服务逻辑(例如,204)主存在网关150a上和/或由应用服务器或提供了云资源(例如,605)的(一个或多个)其他***来远程地主存。在一个示例中,智能手机130(或其他设备)可以进入第一环境610中,并且可以与对应的网关150a通信以指示应该在第一环境610中的IoT应用的部署中采用第一配置组。例如,网关150a可以通过发现一组资产A1、A2、B1、C1、D1、D2将IoT应用部署在第一环境610中,其中,资产A1和A2是分类A的实例,资产B1是分类B的实例等。进一步地,还可以将相同的(或不同的)智能手机选择未提供资源以满足被限定用于IoT应用的一个或多个UI能力。在该示例中,选择另一个智能手机135以满足被限定用于IoT应用的一个或多个UI(输入和/或输出)能力所需的资源,同时不将智能手机130选择为包含在环境A 610中的部署中。对于IoT应用的剩余的抽象(诸如能力抽象A、B、C、D和E),可以附加地执行资产选择(或绑定),这导致资产A1、B1、C1、D1和E1被选择和部署以用于环境A 610中的IoT应用部署的实例。另外,可以将特定的一组配置(在配置数据208中限定)推送至经选择的资产(A1、B1、C1、D1、E1和智能手机135)以用于部署中。在一些情况中,可以将UI模型、脚本或其他数据推送至被选择以向部署提供UI能力的资源(例如,135)。
在一些示例中,特定的一组配置的使用可以基于用户的请求或甚至是识别到与用户相关联的特定的用户设备存在于环境A 405中。相应地,网关可以基于环境内的用户、财产拥有者(例如,环境的管理者或拥有者)的偏好,根据管控或公司规章来配置IoT应用的特定部署,以及其他示例。通过远程地主存配置数据,多个不同的(并且可能是远程的)环境中的多个不同的管理***(例如,150a和150b)可以试图将相同的配置应用于相同的特定IoT应用的不同的部署,在此意义上,这些配置可以是便携式的。在其他情况中,特定IoT应用(例如,在环境A(610)和环境B(615)中)的每个部署中的被推送至相应的资产的配置可以是不同的。
继续图6的示例,在另一个远程环境(环境B(615))中,可以通过另一个网关150b来在另一个环境615中部署相同IoT应用的实例。可以在环境B 615中发现与用于环境A610中的一组资产不同的一组资产,这导致针对环境B 615中的IoT应用的不同的一组经部署的资产(例如,A2、B2、C2、D1和E1)。环境B中的资产中的一些资产可以是被发现于环境A中的相同资产(例如,相同设备模型)的实例(例如,A2、C1、D1)。一些资产可能不与位置紧密联系(诸如可以用于环境A和B两者中的IoT应用部署的移动设备(例如,130、135)或其他移动设备上的资产)。尽管部署在两个环境(例如,610、615)之间是不同的,但是当在资产抽象级别上进行查看时,部署可以是功能等同物。进一步地,可以通过提供相同的配置(来自配置数据204)来在每个环境605、610内同样地将用于每个部署中的设定应用至相应的IoT应用部署中的每一个部署。作为一个示例,可以同样地将针对分类实例B在配置数据中所限定的灵敏度设定值应用至资产B1和B2(以及当被部署时,就此而言有B3)中的每一个资产,这允许网关的部署管理器尝试获得利用了资产的不同集合的等同***。尽管在实践中得到的***可能不是功能上相同的(因为即使当以相同设定配置,资产实例(例如,B1和B2)之间的差异可能显露),但可以利用最小的用户努力来至少近似得到各种环境中的应用的实现方式。
进一步地,在图6的示例中,在IoT应用的第一部署(例如,环境A(610)中的部署)中不被选择用作UI资源的智能手机设备130,可以将相同的智能手机设备130(例如,当被移动至另一个环境并且被对应的管理***(例如,网关150b)发现)绑定至其他部署中的UI资源(以及映射能力抽象)。例如,智能手机130可以将识别为具有满足针对IoT应用的UI能力抽象中的一个或多个UI能力抽象的仅有的设备或更好地满足针对IoT应用或环境B中的应用的特定部署(例如,如配置数据208或服务逻辑204中所限定的)所建立的结合准则的仅有的设备,以及其他示例。
使用基于抽象的编程工具所开发的服务逻辑可以附加地允许在部署的运行时期间发现新的设备和将该新的设备包括在应用部署中。例如,管理***可以检测新的设备进入网络,并确定资产在新的设备上是可用的。基于检测到资产中的至少一些对应于映射至被限定用于应用的能力抽象的资源抽象,管理***可以与新的设备进行通信以配置设备(以及其资产)添加至部署。实际上,对于UI资产,基于对支持被限定用于对应的UI能力抽象的资源(例如,显示、存储和计算)的新的设备的检测,可以提供新的UI或附加的UI。例如,在图6的示例中,可以初始地识别和选择设备135以用于满足环境A 610中的应用的一个或多个UI能力抽象要求。然而,用户设备130稍后可以进入环境A 610并且动态地被添加作为附加的UI资产或替代的UI资产。在一些实例中(其中,针对应用限定多个UI能力抽象),可以选择一个设备(例如,135)来映射至该UI能力抽象中的第一UI能力抽象的资源要求,同时选择该设备中的第二设备(例如,130)以满足剩余的UI能力抽象。当设备进入或退出(或失效)在运行时期间,这些设备至能力(和运行时)抽象的映射也可能改变,其中,作为响应,选择其他设备以补充或替换经部署的设备。
转至图7,示出展示了使用部署管理器(例如,215)(该部署管理器被实现在用户设备、IoT网关、控制器设备或其他***上)的IoT应用的示例部署简化框图700。在一个示例中,部署管理器215可以包括IoT服务器705以使用特定位置或网络内的各种设备(例如,105a、105b、130)的组合来服务一个或多个IoT应用。部署管理器215可以附加地包括本地配置/服务管理器710,该本地配置/服务管理器710可以管理对本地的和远程的配置数据和服务逻辑的访问以及利用该本地的和远程的配置数据和服务逻辑对IoT部署中的设备(例如,105a、105b、130)进行的配设。可以将本地配置数据和服务逻辑存储在网关150的本地存储415中。还可以由部署管理器215通过访问(例如,通过配置/服务管理器710)服务了配置数据和/或服务逻辑(例如,在(一个或多个)数据存储725处)的一个或多个远程配置和/或服务管理器(例如,共同地720)以访问和利用附加的配置数据和服务逻辑。
可以由用户通过用户设备或其他控制器来控制要用于部署中的特定配置数据或服务逻辑的选择(例如,从远程配置存储或本地配置存储),以及其他示例。无论配置数据或服务逻辑是源自远程存储(例如,725)、用户设备(例如,130)、可能要包括在经部署的IoT应用中的其他设备(例如,105a))、部署管理器215的本地存储715、或其他源,都要首先将配置数据或服务逻辑在被用于运行时部署之前提供给部署管理器215上的配置/服务管理器710。
部署管理器215自身可以配置为部署相同的IoT应用的各种实例或者不同的IoT应用的各种实例。这些部署实例中的每一个实例的设定可以被预编程或可以由管理员提供(例如,通过与部署管理器215进行通信的用户设备(例如,130)上的应用),并且这些设定可以驱动在IoT应用的运行时部署中利用什么服务逻辑和配置数据。例如,部署管理器215的服务管理器(例如,710)可以确定要采用特定服务逻辑以用于特定的IoT应用部署。可以从本地存储715访问服务逻辑,并且该服务逻辑可以在一些情况中指示与远离部署管理器215地运行附加的服务逻辑的一个或多个其他***(例如,720)之间的协调,本地服务管理器710将在某些情形和交易中请求和利用该协调。基于识别要使用的服务逻辑,服务管理器710可以向运行时管理器240提供服务逻辑730以开始对应的IoT应用的部署。
服务逻辑(以及通过其执行被提供的服务)可以限定设备之间的交互和要通过IoT应用的部署来执行的动作。服务逻辑可以识别部署内所需的或所期望的资产,并且可以通过资产抽象(例如,通过能力抽象)来识别该资产。例如,如图5的示例中所暗示的,可以针对IoT服务部署来限定一个或多个UI能力,并且可以选择和发现一个或多个用户设备(例如,130)以满足这些IoT服务的经抽象的要求。进一步地,还可以利用同样地通过参考相应的资产抽象来作出的这些限定来限定设备之间的交互或关系。相应地,服务逻辑可以限定要由网关发现的一组设备(或设备类型)并驱动用于识别和选择要用于部署中的一组设备(例如,105a、105b、130)的发现和绑定过程。
可以由运行时管理器250来在本地实施服务逻辑。在一些情况中,服务可以被实现作为脚本并且用于触发利用经部署的设备的事件和动作。如上所述,服务逻辑还可以识别在计算资源外部的状况(诸如基于例如为了辅助处理由IoT应用部署返回的数据而要调用主存了远程服务逻辑的***)。服务(通过对应的服务逻辑在本地或远程地执行的服务)可包括输入的接收(诸如,传感器读取;静态值或致动器触发器;要应用于输入、UI输入的功能、过程、和计算;以及基于功能结果生成的输出),其进而指定要由致动器执行的某些动作或要呈现在用户设备(例如,130)上的结果,以及其他示例。在一些情况中,可以将服务逻辑的部分分发到经部署的IoT应用内的计算资源或资产,且可以由经部署的设备(例如,105a、105b、130)自身上的计算资产来执行针对部署的输入处理和结果生成的一部分。这样的结果可以进而路由通过网关或返回至网关以用户进一步的处理(例如,通过对于部署管理器215是本地的服务逻辑或者通过在基于云端的后端***(例如,720等)上执行的服务逻辑)。
服务部署可以开始于在运行时管理器250上运行被提供的服务逻辑。运行时管理器250可以处理逻辑以识别被映射至IoT应用的要求的一组资产抽象。这些对抽象的识别可以提示资产发现阶段740的开始(例如,通过IoT服务器705执行的资产发现阶段)。在发现期间,设备(例如,105a、105b、130等)可以与每个设备的标识符信息一起被发现,以允许部署管理器215确定可以将哪个资产抽象或哪些资产抽象被映射到每个设备(利用其资产的相应的集合)。在一个示例中,运行时管理器250可以首先确定被映射至被限定用于特定应用的一组能力抽象的一组资源抽象,并且随后确定被发现的资产中的哪些资产满足用于特定应用的经确定的资源抽象中的哪些资源抽象。在位置内识别出的特定类型的资产多于所需的情况下,网关可以附加地执行绑定分析(根据一个或多个绑定准则)以选择哪个设备或哪些设备来绑定至一个或多个对应的资产抽象。
利用被选择用于对应的IoT应用部署的一组设备,可以由部署管理器215来执行备的自动化配置。配置数据可以体现识别与特定设备相关的一个或多个静态设定的配置,该配置正被应用于所述特定设备。可以提供多个配置以用于在给定的部署中配设多个不同类型的设备。在数据存储中的各种配置数据可以描述多个不同的预设定配置,每个预设定配置针对特定的场景或部署被调整。可以以标准格式(诸如,XML、JSON或CBOR文件、以及其他示例)来提供配置数据。本地配置管理器(例如,710)可以处理被发现的设备(例如,105a、105b、130)上的配置的部署。可以由IoT服务器部件705来处理对应的位置或覆盖区域中的部署管理器215与设备(例如,105a、105b、130)之间的通信。将配置数据从本地配置管理器发送至被发现和选择用于特定IoT应用中的部署的对应的设备。取决于设备的数目、本地网关150的硬件能力、以及部署中的每个设备(例如,105a、105b、130)的本地网络带宽和等待时间,部署管理器215可以将配置数据直接地发送至部署中的IoT设备中的每一个设备,或者可以利用该设备中的一个或多个设备以将配置数据以点对点方式来分发到其他设备,以及其他示例。
运行时管理器250可以限定要传递至部署管理器215的范围中的各种设备的消息(例如,735),以促进设备的发现(以及紧随部署的新的设备的正在进行的发现)以及至合适设备(例如,105a、105b、130)的配置数据的递送。在一些情况中,部署管理器215的配置管理器710可以识别对应于被发现的设备(例如,105a、105b、130)的合适的配置,并向IoT服务器705提供对应的配置数据(在745处)以用于至合适的设备的配置数据的分发(直接地或通过P2P分享)。
对于包括传感器资产(例如,110a)的设备(例如,105a),配置数据可以向资产(及其主机设备)指示如何使用传感器来收集和中继数据。例如,配置数据可以由主机设备来利用以使数据以特定的时间间隔被收集、生成、或报告,以将传感器调整至某些设定,从而将过滤器应用至传感器所感测到的信息,以及其他示例。对于包括致动器资产(例如,115a)的设备(例如,105b),配置数据可以向该资产指示如何响应于输入(例如,通过网关提供的输入)并响应于这些请求来执行活动。例如,针对致动器资产的配置数据可以使致动器在动作之前等待某些命令或消息750、755(例如,来自IoT服务器705),以将其动作调整至特定设定,选择执行哪些动作或如何通过致动器执行这些动作,以及其他示例。还可以将配置数据发送至被分派为满足的应用的UI能力的资产,其中,配置数据可能驱动通过与部署相联系的设备(例如,130)被提供至用户的某一风格或类型的UI。
利用提供至被发现的设备(例如,105a、105b、130)的配置数据745,可以认为初始部署是完成的并且设备(例如,105a、105b、130)及其相应资产(例如,110a、115a、266、268、278等)可以根据提供给它们的配置来操作。
相应地,在运行时期间,可将感测消息(例如,750、455)从设备(例如,105a、105b)向上发送至部署管理器215。还可以传输要呈现在UI输出中的数据和来自UI输入的数据(例如,755)。在一个示例中,运行时管理器250可以接收感测消息(在735处)并利用对于部署管理器215是本地的或是远程的服务逻辑来处理传感器数据作为输入。在一些实现方式中,运行时管理器250可以将传感器数据重新引导或转发至一个或多个经部署的计算(例如,266)资产或存储(例如,268)资产以用于在经部署的设备中的另一个设备(例如,130)上进行处理,以及其他示例。可以从处理中生成一个或多个结果,并使用该一个或多个结果作为对(该消息被从运行时管理器250发送至IoT服务器(在735处)以用于递送(在750处)至一个或多个特定致动器资产(例如,设备105b上的115a)从而使对应的活动被执行)进行致动的基础。还可以将处理的结果提供至提供了UI输出功能(例如,在755处)的资产。以该方式,可以提供IoT服务部署和资源管理的***,该***使设备的自动配置和利用那些配置的服务(该服务包括具有允许由一个或多个用户对部署进行运行时控制的UI功能的服务)的快速部署成为可能。
虽然将本文中所描述和所示出的***和解决方案中的一些已经描述为包含多个元件或与多个元件相关联,但可以不将清晰地示出或描述的全部的组件用于本公开的每个可替代的实现方式中。另外,可以将所述元件中的一个或多个元件定位在***外部,而在其他实例中,可以将某些元件包括在其他所述的元件以及未在所展示的实现方式中描述的其他元件中的一个或多个元件内,或者作为其他所述的元件以及未在所展示的实现方式中描述的其他元件中的一个或多个元件的一部分。进一步地,可以将某些元件与其他部件以及用于除本文中所描述的那些目的之外的可替代的目的或附加的目的的部件相组合。
进一步地,应该理解到,上文所呈现的示例是仅为了说明某些原则和特征的目的而提供的非限制性示例,并且不一定限制或约束本文中所描述的概念的可能的实施例。例如,可以利用本文中所描述的特征和部件的各种组合(包括通过本文中所描述的部件的各种实现方式实现的组合)来实现各种不同的实施例。应该从本说明书的内容中理解其他实现方式、特征和细节。
图8A-8B是示出用于开发和部署IoT应用或其他机器对机器***的示例技术的简化框图800a-b。例如,在图8A的示例中,可以通过可接收到哪些用户输入805来提供开发工具。用户输入可以使得选择(例如,从能力抽象的库中)一组能力抽象以限定810要被包括在新的IoT应用中的功能。开发工具可以进一步用于限定815经选择的一组能力抽象之间的关系。可以从经限定的一组能力抽象来自动地生成820服务逻辑,该经限定的一组能力抽象可执行用于执行多个不同环境中的任何一个环境中的IoT应用的部署并且可能使用特定设备和资产的各种的集合。
例如,在图8B的示例中,可以利用网关或其他IoT管理***来发现830环境内的多个设备。IoT管理***可以确定835存在于被发现的设备上的资产,并且基于满足针对特定IoT应用(例如,在图8A中开发的应用)所限定的一个或多个资产抽象要求(例如,能力抽象)的资产来选择715设备以用于IoT应用的特定部署。在一些情况中,网关可以自主地作出这些确定(例如,835),而在其他情况中,网关可以消费与作出确定835相联系的远程***的服务。对设备的选择可以包括确定840运行时抽象(该运行时抽象映射至IoT应用的能力抽象)与经选择的资产之间的映射。这些运行时抽象中的至少一些运行时抽象可以对应于UI能力抽象,并且可以由IoT管理***来识别对应的资产以实现IoT应用部署中的UI,该UI时得由一个或多个用户能够对部署进行运行时操纵。IoT管理***可以通过参与设备的运行时抽象而不是通过其特定身份来与参与设备交互,访问参与设备的逻辑和/或识别参与设备。运行时抽象可以表示IoT管理***(以及应用逻辑)与特定部署内的设备之间的接口。进一步地,在一些情况中,可以由IoT管理***来支持相同应用(甚至相同位置或环境内)的多个部署,并且不同的部署可以各自拥有其独有的一组运行时抽象。进一步地,可以识别用于同样地被映射至运行时抽象的部署的配置数据。IoT管理***可以将配置数据的对应部分递送至被映射至这些运行时抽象的经选择的资产,以使用经选择的部署来在环境中部署845特定的应用。紧接部署之后,传感器数据可以由经部署的传感器资产来生成,并且可以由被部署在IoT应用中的计算逻辑和/或致动器资产来使用该传感器数据,并且UI输出可以视图提供针对致动器状态、传感器数据值、以及计算逻辑的结果以及其他示例的视图。
图9-10是可根据本文中所公开的实施例来使用的示例性计算机架构的框图。还可以使用本领域已知的用于处理器和计算***的其他计算机架构设计。一般来说,适用于本文中所公开的实施例的计算机架构可以包括但不限于图9-10中示出的配置。
图9是根据实施例的处理器的示例图示。处理器900是可以与以上实现方式相联系地使用的一种硬件设备的示例。处理器900可以是用于任何类型的处理器,诸如微处理器、嵌入式处理器、数字信号处理器(DSP)、网络处理器、多核处理器、单核处理器、或用于执行代码的其他设备。尽管图9展示了仅一个处理器900,但处理元件可以可替代地包括多于一个图9中所展示的处理器900。处理器900可以是单线程的核,或者对于至少一个实施例,处理器900可以是多线程的,因为所述处理器可以每个核包括多个硬件线程上下文(或“逻辑处理器”)。
图9还示出根据实施例的耦合至处理器902的存储器902。存储器902可以是如本领域技术人员已知的或以其他方式可获得的多种多样的存储器(包括存储器层级的不同层)中的任何存储器。这样的存储器元件可以包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、现场可编程门阵列(FPGA)的逻辑框、可擦除可编程只读存储器(EPROM)、以及电可擦除可编程ROM(EEPROM)。
处理器900可以执行与本文中详细描述的算法、过程、或操作相关联的任何类型的指令。一般来说,处理器900能够将要素或物品(例如,数据)从一种状态或事物变换成另一状态或事物。
代码904(其可能是要由处理器900来执行的一个或多个指令)可以将存储在存储器902中,或者可以将该代码804存储在软件、硬件、固件、或其任何适合的组合中,或者存储在任何其他内部或外部的部件、设备、元件、或适合的且基于特定需求的对象中。在一个示例中,处理器900可以遵循由代码904指示的指令的程序序列。每个指令进入前端部分906并且由一个或多个解码器908进行处理。所述解码器可以生成诸如预定格式的固定宽度微操作的微操作作为其输出,或者可以生成反映原始代码指令的其他指令、微指令或控制信号。前端逻辑906还包括寄存器重命名逻辑910和调度逻辑912,其通常分配资源并且对与用于执行的指令相对应的操作进行排队。
处理器900还可以包括具有一组执行单元916a、916b、916n等的执行逻辑914。一些实施例可以包括专用于指定功能或功能组的大量执行单元。其他实施例可以仅包括一个执行单元或一个可执行特定功能的执行单元。执行逻辑914执行由代码指令指定的操作。
在代码指令指定的操作执行完成之后,后端逻辑918可引退代码904的指令。在一个实施例中,处理器900允许无序执行,但要求指令的有序引退。引退逻辑920可采取各种已知的形式(例如,重排序缓冲器等等)。以此方式,至少在由解码器生成的输出、由寄存器重命名逻辑910利用的硬件寄存器和表以及由执行逻辑914修改的任何寄存器(未示出)方面,在代码904的执行期间可以转换处理器900。
尽管图9未示出,但处理元件可以包括具有处理器900的芯片上的其他元件。例如,处理元件可以包括存储器控制逻辑连同处理器900。处理元件可以包括I/O控制逻辑、和/或可以包括与存储器控制逻辑集成的I/O控制逻辑。处理元件还可以包括一个或多个高速缓存。在一些实施例中,还可将非易失性存储器(诸如闪速存储器或熔断器)包括在具有存储器900的芯片上。
图10示出了根据实施例的被安排为点对点(PtP)配置的计算***1000。具体地,图10示出了一种***,在所述***中,处理器、存储器以及输入/输出设备通过许多点对点接口互连。一般来说,可以按与计算***1000相同或类似的方式来配置本文中所描述的计算***中的一个或多个计算***。
处理器1070和1080还可以各自包括用于与存储器元件1032和1034进行通信的集成存储器控制器逻辑(MC)1072和1082。在替代实施例中,存储器控制器逻辑1072和1082可以是与处理器1070和1080分开的分立逻辑。存储器元件1032和/或1034可以存储要由处理器1070和1080使用于获取本文中所概述的操作和功能中的各种数据。
处理器1070和1080可以是任何类型的处理器,诸如与其他附图相联系地讨论的那些处理器。处理器1070和1080可以分别使用点对点(PtP)接口电路1078和1088经由点对点(PtP)接口1050来交换数据。处理器1070和1080中可以各自使用点对点接口电路1076、1090、1086和1094经由单独的点对点接口1052和1054来与芯片集1098交换数据。芯片集1090还可以使用接口电路1092(其可以是PtP接口电路)经由高性能图形接口1038来与高性能图形电路1039交换数据。在替代实施例中,可以将图10中所示的任何或所有PtP链路实现为多站式总线而非有PtP链路。
芯片集1090可以经由接口电路1096与总线1020进行通信。总线1020可以具有与其通信的一个或多个设备,诸如总线桥接器1018和I/O设备1016。经由总线1010,总线桥接器1018可以与其他设备进行通信,诸如用户接口1012(诸如键盘、鼠标、触摸屏、或其他输入设备)、通信设备1026(诸如调制解调器、网络接口设备、或可通过计算机网络1060进行通信的其他类型的通信设备)、音频I/O设备1014、和/或数据存储设备1028。数据存储设备1028可以存储代码1030,该代码可以由处理器1070和/或1080来执行。在替代实施例中,可以利用一个或多个PtP链路实现总线架构的任何部分。
图10中描绘的计算机***是可用于实现在此讨论的各种实施例的计算***的实施例的示意性图示。将明白到,图10中描绘的各种组件可以在能够达到本文中所提供的示例和实现方式的功能和特征的片上***(SoC)架构中或以任何其他合适的配置来组合。
尽管已经在某些实现方式和一般相关联方法的方面描述了本公开,这些实现方式和方法的更改和置换将对于本领域技术人员来说是显而易见的。例如,本文中描述的动作可以以与所描述的顺序不同的顺序来执行,并仍获得期望的结果。作为一个示例,在附图中描绘的过程不一定需要所示出的特定顺序或相继顺序来实现期望的结果。在某些实现方式中,多重任务处理和并行处理可能是有利的。另外,可以支持其他用户接口布局和功能。其他变体在下述权利要求书的范围内。
一般来说,可以将本说明书中所描述的主题中的一个方面体现在包括或导致以下动作的方法和被执行的指令中:该动作包括识别包括软件代码的样本、针对样本中所包括的多种功能中的每种功能来生成控制流程图、以及对应于一组控制流程片段类型来在该功能中的每个功能中识别特征。经识别的特征可以用于从经识别的特征生成样本的特征集。
这些实施例和其他实施例各自可以可任选地包括以下特征中的一个或多个特征。可以将针对所述功能中的每个功能所识别的特征进行组合以生成样本的合并字符串,并且可以从合并字符串生成特征集。可以针对所述功能中的每个功能来生成字符串,每个字符串描述了针对所述功能所识别的相应的特征。将特征组合可以包括:将多个功能中的特定的一个功能中的调用识别为多个函数中的另一个,并且将引用另一个功能的特定功能的字符串的一部分替换为另一个功能的字符串的内容。识别特征可以包括对功能的字符串中的每个字符串进行抽象从而使得在字符串中仅描述控制流程片段类型的集的特征。该组控制流程片段类型可以包括由功能进行的存储器访问以及由功能进行的功能调用。识别特征可以包括识别由该功能中的每一个功能来进行的存储器访问的实例以及识别由该功能中的每一个功能来进行的功能调用的实例。特征集可以识别针对该功能中的每一个功能所识别的特征中的每一个特征。特征集可以是n图。
进一步地,这些实施例和其他实施例各自可以可任选地包括以下特征中的一个或多个特征。可以提供特征集以用于对样本进行分类。例如,对样本进行分类可以包括基于样本的对应的特征将样本与其他样本群集。对样本进行分类可以进一步包括确定与样本的集群相关的特征的集。对样本进行分类还可以包括确定是否将样本分类为恶意软件和/或确定样本是否可能是恶意软件的一个或多个族中的一个。识别特征可以包括对所述控制流程图中的每个控制流程图进行抽象从而使得在控制流程图中仅描述控制流程片段类型的集的特征。可以接收多个样本,包括所述样本。在一些情况中,可以从多个源中接收多个样本。特征集可以识别在样本的功能的控制流程图中识别出的特征的子集。特征的子集可以对应于样本代码中的存储器访问和功能调用。
尽管本说明书包含许多特定实施细节,但是这些细节不应被解读为是对任何发明或者可能要求保护的内容的范围的限制,而应被解读为是对具体发明的具体实施例特有的特征的描述。在单独的实施例的背景下在本说明书中所描述的某些特征还可以组合地实现在单个实施例中。相反,在单一实施例的情境下描述的各个特征也可以被单独的或以任何合适的子组合的方式实现在多个实施例中。而且,虽然特征在上文可以被描述为以某些组合起作用并且甚至如此最初被要求,但来自所要求保护的组合的一个或多个特征在某些情况下可以与组合离体,并且所要求保护的组合可以针对子组合或子组合的变化。
类似地,虽然附图中以具体顺序描绘了操作,但这不应被理解成要求这种操作以所示出的具体顺序或以有序顺序执行,或者所有展示的操作可以被执行,以实现令人希望的结果。在某些情况下,多重任务处理和并行处理可能是有利的。而且,上述实施例中的不同***部件的分离不应被理解成在所有实施例中都要求这种分离,并且应理解的是,所描述的程序部件和***通常可以一起整合在单个软件产品中或封装进多个软件产品中。
以下示例与根据本说明书的实施例有关。一个或多个实施例可以提供***、机器可读存储介质、装置、和/或方法以基于通过编程工具的图形用户界面接收到的一个或多个用户输入来限定用于特定应用的一组能力抽象,并且进一步基于一个或多个用户输入来限定该组能力抽象之间的关系。该特定应用用于利用机器对机器网络,并且该组能力抽象可以包括:针对特定应用的至少一个传感器能力抽象、至少一个致动器能力抽象、至少一个计算逻辑能力抽象、至少一个输入用户界面(UI)能力抽象、以及至少一个输出UI能力抽象。该关系可包括输入UI能力抽象与计算逻辑能力抽象之间的关系,其中,输入UI能力用于向计算逻辑能力抽象提供输入。可以生成包括服务逻辑的可执行代码以在环境中部署特定应用的实例,其中,基于该组能力抽象以及该关系来生成该代码。
在一个示例中,部署特定应用的实例包括选择环境中的一个或多个设备以包括在特定应用的经部署的实例中,以实现用于特定应用的用户界面,并且基于输入UI能力抽象和输出UI能力抽象中的至少一个能力抽象来提供用户界面。
在一个示例中,该输入UI能力抽象包括第一输入UI能力抽象,并且该组能力抽象进一步包括第二输入UI能力抽象。
在一个示例中,第一输入UI能力抽象对应于提供用户界面中的第一类型的输入UI元件,并且第二输入UI能力抽象对应于提供用户界面中的不同的第二类型的输入UI元素。
在一个示例中,用户界面能实现对特定应用的经部署的实例的运行时修改。
在一个示例中,服务逻辑可执行用于识别对应于该组能力抽象的一组资源抽象并且识别环境中的满足该组资源抽象的资产的集合。
在一个示例中,服务逻辑是进一步用于选择资产的集合的至少一部分以在特定应用的实例中进行部署。
在一个示例中,对资产的集合的一部分的选择基于资产相对于对应于环境的管理***的相应的接近度。
在一个示例中,管理***包括网关以与资产的集合进行无线通信。
在一个示例中,至少部分地在网关处执行服务逻辑。
在一个示例中,至少该组能力抽象中的特定能力抽象映射至该组资源抽象中的多个资源抽象,并且该组能力抽象中的另一个能力抽象映射至该组资源抽象中的单个资源抽象。
在一个示例中,输入UI能力抽象和输出UI能力抽象各自映射至该组资源抽象中的相应的多个资源抽象。
在一个示例中,紧接在根据被映射至该组能力抽象的相应的运行时抽象的特定应用的实例的部署之后,服务逻辑识别资产的集合。
在一个示例中,从能力抽象的库中选择该组能力抽象,并且能力抽象的库包括多个不同的输入UI能力抽象和多个不同的输出UI能力抽象。
在一个示例中,该关系包括输出UI能力抽象与传感器能力抽象、致动器能力抽象、和计算逻辑能力抽象中的一个能力抽象之间的关系。
在一个示例中,计算逻辑能力抽象对应于对传感器数据(该传感器数据要由对应于传感器能力抽象的资产来生成)的操作的执行。
在一个示例中,服务逻辑是可重复使用的,以使用不同的资产集合在另一个环境中部署特定应用。
在一个示例中,通过应用编程工具的图形用户界面来接收一个或多个用户输入。
一个或多个实施例可以提供***、机器可读存储介质、装置、和/或方法,以:检测包括用户计算设备的环境中的多个设备;识别被主存在多个设备中的每一个设备上的一组资产、确定资产的子集中的每一个资产与被限定用于特定应用的一组运行时资产抽象中的相应的运行时资产抽象之间的映射;以及使用多个设备来部署特定应用。该组运行时资产抽象可以包括至少一个输出用户界面(UI)抽象、至少一个输入UI抽象、至少一个传感器资产抽象、至少一个致动器资产抽象、和至少一个计算逻辑资产抽象,并且可以将用户计算设备的资产映射至输出UI抽象、输入UI抽象、和计算资产抽象。
在一个示例中,该组运行时资产抽象对应于被限定在特定应用的代码中的一组能力抽象。
在一个示例中,代码进一步限定该组能力抽象之间的关系。
在一个示例中,在第一部署中使用多个设备部署特定应用,并且在随后的第二部署中根据该组能力抽象使用不同的多个设备来部署特定应用。
在一个示例中,指令进一步可执行用于识别对应于特定应用的部署的特定配置数据,并且部署特定应用包括将特定配置数据发送至多个设备以针对特定应用的运行时配置多个设备的资产。
在一个示例中,输入UI能力抽象和输出UI能力抽象中的每一个能力抽象映射至相应的多个资产类型。
在一个示例中,***可以包括***管理器,并且可以将***管理器至少部分地主存在被配置为与多个资产进行通信的网关上。
因此,己经描述了主题的具体实施例。其他实施例在以下权利要求的范围内。在一些情况下,权利要求书中所列举的动作可以用不同顺序来执行,并且仍然获得期望结果。此外,在附图中描绘的过程不一定需要所示出的特定顺序或相继顺序来实现期望的结果。
Claims (25)
1.一种用于部署物联网***的方法,所述方法包括:
接收通过应用编程工具的图形用户界面接收的一个或多个用户输入;
基于所述一个或多个用户输入,限定针对特定应用的一组能力抽象,其中,所述特定应用用于利用机器对机器网络,并且所述一组能力抽象包括:针对所述特定应用的至少一个传感器能力抽象、至少一个致动器能力抽象、计算逻辑能力抽象、至少一个输入用户界面UI能力抽象、以及至少一个输出UI能力抽象;
基于所述一个或多个用户输入,限定所述一组能力抽象之间的关系,其中,所述关系包括所述输入UI能力抽象与所述计算逻辑能力抽象之间的关系;以及
生成包括服务逻辑的可执行代码以在环境中部署所述特定应用的实例,其中,基于所述一组能力抽象以及所述关系来生成所述代码。
2.如权利要求1所述的方法,其特征在于,部署所述特定应用的所述实例包括选择所述环境中的一个或多个设备以包括在所述特定应用的经部署的实例中,以实现针对所述特定应用的用户界面,并且基于所述输入UI能力抽象和所述输出UI能力抽象中的至少一个能力抽象来提供所述用户界面。
3.如权利要求2所述的方法,其特征在于,所述输入UI能力抽象包括第一输入UI能力抽象,并且所述一组能力抽象进一步包括第二输入UI能力抽象。
4.如权利要求3所述的方法,其特征在于,所述第一输入UI能力抽象对应于在所述用户界面中提供第一类型的输入UI元件,并且所述第二输入UI能力抽象对应于在所述用户界面中提供不同的第二类型的输入UI元件。
5.如权利要求2所述的方法,其特征在于,所述用户界面能实现对所述特定应用的所述经部署的实例的运行时修改。
6.如权利要求1所述的方法,进一步包括:
识别对应于所述一组能力抽象的一组资源抽象;以及
识别所述环境中的满足所述一组资源抽象的资产的集合。
7.如权利要求6所述的方法,其特征在于,所述服务逻辑进一步用于选择所述资产的集合的至少一部分以在所述特定应用的所述实例中进行部署。
8.如权利要求7所述的方法,其特征在于,对所述资产的集合的所述一部分的选择基于所述资产相对于对应于所述环境的管理***的相应的接近度。
9.如权利要求8所述的方法,其特征在于,所述管理***包括网关以与所述资产的集合进行无线通信。
10.如权利要求9所述的方法,其特征在于,至少部分地在所述网关处执行所述服务逻辑。
11.如权利要求6所述的方法,其特征在于,至少所述一组能力抽象中的特定能力抽象映射至所述一组资源抽象中的多个资源抽象,并且所述一组能力抽象中的另一个能力抽象映射至所述一组资源抽象中的单个资源抽象。
12.如权利要求11所述的方法,其特征在于,所述输入UI能力抽象和输出UI能力抽象各自映射至所述一组资源抽象中的相应的多个资源抽象。
13.如权利要求6所述的方法,其特征在于,在根据被映射至所述一组能力抽象的相应的运行时抽象的所述特定应用的所述实例的部署之后,所述服务逻辑识别所述资产的集合。
14.如权利要求1所述的方法,其特征在于,从能力抽象的库中选择所述一组能力抽象,并且所述能力抽象的库包括多个不同的输入UI能力抽象和多个不同的输出UI能力抽象。
15.如权利要求1所述的方法,其特征在于,所述关系包括输出UI能力抽象与所述传感器能力抽象、致动器能力抽象、和计算逻辑能力抽象中的一个能力抽象之间的关系。
16.如权利要求1所述的方法,其特征在于,所述计算逻辑能力抽象对应于对要由对应于所述传感器能力抽象的资产来生成的传感器数据的操作的执行。
17.一种用于部署物联网***的***,包括用于执行如权利要求1至16中任一项所述的方法的装置。
18.一种用于部署物联网***的方法,所述方法包括:
检测环境内的多个设备,其中,所述多个设备包括用户计算设备;
识别被主存在所述多个设备中的每一个设备上的一组资产;
确定所述资产的子集中的每一个资产与被限定用于特定应用的一组运行时资产抽象中的相应的运行时资产抽象之间的映射,其中,所述一组运行时资产抽象包括至少一个输出用户界面UI抽象、至少一个输入UI抽象、至少一个传感器资产抽象、至少一个致动器资产抽象、和至少一个计算逻辑资产抽象,并且其中将所述用户计算设备的资产映射至所述输出UI抽象、所述输入UI抽象、和所述计算资产抽象;以及
使用所述多个设备来部署所述特定应用。
19.如权利要求18所述的方法,其特征在于,所述一组运行时资产抽象对应于被限定在所述特定应用的代码中的一组能力抽象。
20.如权利要求19所述的方法,其特征在于,所述代码进一步限定所述一组能力抽象之间的关系。
21.如权利要求19所述的方法,其特征在于,在第一部署中使用所述多个设备部署所述特定应用,并且在随后的第二部署中根据所述一组能力抽象使用不同的多个设备来部署所述特定应用。
22.如权利要求18所述的方法,进一步包括识别对应于所述特定应用的部署的特定配置数据,并且其中,部署所述特定应用包括将所述特定配置数据发送至所述多个设备以针对所述特定应用的运行时配置所述多个设备的资产。
23.如权利要求18所述的方法,其特征在于,所述输入UI能力抽象和输出UI能力抽象中的每一个能力抽象映射至相应的多个资产类型。
24.一种用于部署物联网***的***,包括用于执行如权利要求18至23中任一项所述的方法的装置。
25.一种用于部署物联网***的***,所述***包括:
处理器;
存储器;
***管理器,所述***管理器由所述处理器可执行用于:
检测环境内的多个设备,其中,所述多个设备包括用户计算设备;
识别被主存在所述多个设备中的每一个设备上的一组资产;
确定所述资产的子集中的每一个资产与被限定用于特定应用的一组运行时资产抽象中的相应的运行时资产抽象之间的映射,其中,所述一组运行时资产抽象包括至少一个输出用户界面UI抽象、至少一个输入UI抽象、至少一个传感器资产抽象、至少一个致动器资产抽象、和至少一个计算逻辑资产抽象,并且其中将所述用户计算设备的资产映射至所述输出UI抽象、所述输入UI抽象、和所述计算资产抽象;以及使用所述多个设备来部署所述特定应用。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110324995.7A CN112995962A (zh) | 2016-07-01 | 2016-07-01 | 机器对机器***中的动态用户界面 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2016/040627 WO2018004642A1 (en) | 2016-07-01 | 2016-07-01 | Dynamic user interface in machine-to-machine systems |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110324995.7A Division CN112995962A (zh) | 2016-07-01 | 2016-07-01 | 机器对机器***中的动态用户界面 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109313543A CN109313543A (zh) | 2019-02-05 |
CN109313543B true CN109313543B (zh) | 2022-10-28 |
Family
ID=60787550
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110324995.7A Pending CN112995962A (zh) | 2016-07-01 | 2016-07-01 | 机器对机器***中的动态用户界面 |
CN201680086714.6A Active CN109313543B (zh) | 2016-07-01 | 2016-07-01 | 机器对机器***中的动态用户界面 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110324995.7A Pending CN112995962A (zh) | 2016-07-01 | 2016-07-01 | 机器对机器***中的动态用户界面 |
Country Status (4)
Country | Link |
---|---|
US (2) | US10481925B2 (zh) |
EP (2) | EP3862872A1 (zh) |
CN (2) | CN112995962A (zh) |
WO (1) | WO2018004642A1 (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10481925B2 (en) | 2016-07-01 | 2019-11-19 | Intel Corporation | Dynamic user interface in machine-to-machine systems |
EP4239966A3 (en) * | 2016-07-01 | 2024-02-28 | INTEL Corporation | Automated configuration of machine-to-machine systems |
WO2018204625A2 (en) * | 2017-05-03 | 2018-11-08 | Ndustrial.Io, Inc. | Device, system, and method for sensor provisioning |
US10771335B2 (en) * | 2017-07-24 | 2020-09-08 | Verizon Patent And Licensing, Inc. | Generating and sharing models for Internet-of-Things data |
US10587482B2 (en) * | 2017-09-18 | 2020-03-10 | International Business Machines Corporation | Discovery of IoT devices |
US10469600B2 (en) * | 2017-11-14 | 2019-11-05 | Dell Products, L.P. | Local Proxy for service discovery |
US11190513B2 (en) | 2018-01-19 | 2021-11-30 | Vmware, Inc. | Gateway enrollment for internet of things device management |
US20230006890A1 (en) * | 2021-07-01 | 2023-01-05 | Clearblade, Inc. | USER-CONFIGURABLE IoT INTERFACE |
US11522865B2 (en) * | 2018-06-20 | 2022-12-06 | Convida Wireless, Llc | Automated IoT device configuration using user profile |
WO2020062175A1 (en) * | 2018-09-29 | 2020-04-02 | Orange | Discovery of internet-of-things resources |
US10852276B2 (en) * | 2018-10-22 | 2020-12-01 | Hitachi, Ltd. | Holistic sensing method and system |
US11005719B2 (en) * | 2018-12-11 | 2021-05-11 | Vmware, Inc. | Internet of Things system topology generation |
US10841772B2 (en) * | 2018-12-28 | 2020-11-17 | Wipro Limited | Method and system for controlling communication between internet-of-things (IOT) devices |
US11061739B2 (en) * | 2019-04-11 | 2021-07-13 | International Business Machines Corporation | Dynamic infrastructure management and processing |
US11550636B2 (en) * | 2019-11-14 | 2023-01-10 | Vmware, Inc. | Internet of things solution deployment in hybrid environment |
US11861402B2 (en) * | 2020-06-25 | 2024-01-02 | Vmware, Inc. | Methods and apparatus for tenant aware runtime feature toggling in a cloud environment |
US11520566B2 (en) * | 2020-08-24 | 2022-12-06 | Bank Of America Corporation | System for generation and maintenance of source capability objects for application components |
WO2022147124A1 (en) * | 2020-12-30 | 2022-07-07 | Level 3 Communications, Llc | Multi- network management system and method |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102810197A (zh) * | 2011-10-20 | 2012-12-05 | 上海海洋大学 | 基于物联网的水产品溯源与安全预警方法及*** |
WO2014124318A1 (en) * | 2013-02-08 | 2014-08-14 | Interdigital Patent Holdings, Inc. | METHOD AND APPARATUS FOR INCORPORATING AN INTERNET OF THINGS (IoT) SERVICE INTERFACE PROTOCOL LAYER IN A NODE |
CN104914806A (zh) * | 2014-03-13 | 2015-09-16 | 阿瓦亚公司 | 经由移动消息传送私密/安全性中介***连接人和事物 |
KR20150118631A (ko) * | 2014-04-14 | 2015-10-23 | 전자부품연구원 | IoT 디바이스 제어용 UI 방법 및 이를 적용한 제어장치 |
CN105530173A (zh) * | 2016-01-19 | 2016-04-27 | 陈勤 | 可控开放暨开发接入的物联Email体系、实现方法及应用 |
Family Cites Families (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7574334B2 (en) * | 2003-02-11 | 2009-08-11 | Sri International | Formal methods for modeling and analysis of hybrid systems |
JP2007536634A (ja) * | 2004-05-04 | 2007-12-13 | フィッシャー−ローズマウント・システムズ・インコーポレーテッド | プロセス制御システムのためのサービス指向型アーキテクチャ |
US9195233B2 (en) * | 2006-02-27 | 2015-11-24 | Perrone Robotics, Inc. | General purpose robotics operating system |
US10331136B2 (en) * | 2006-02-27 | 2019-06-25 | Perrone Robotics, Inc. | General purpose robotics operating system with unmanned and autonomous vehicle extensions |
US9833901B2 (en) * | 2006-02-27 | 2017-12-05 | Perrone Robotics, Inc. | General purpose robotics operating system with unmanned and autonomous vehicle extensions |
US9318108B2 (en) * | 2010-01-18 | 2016-04-19 | Apple Inc. | Intelligent automated assistant |
KR100995592B1 (ko) * | 2008-12-02 | 2010-11-22 | 김우열 | 타겟독립모델을 이용한 임베디드 시스템 설계 장치 및 그 방법 |
US20110230979A1 (en) * | 2010-03-19 | 2011-09-22 | Microsoft Corporation | Scalable and flexible control system having symmetrical control units |
CN103858409B (zh) * | 2011-10-12 | 2016-08-24 | 国际商业机器公司 | 使用设备注册器和连线代理的传感器设备聚合 |
WO2013123445A1 (en) | 2012-02-17 | 2013-08-22 | Interdigital Patent Holdings, Inc. | Smart internet of things services |
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 |
US20140244001A1 (en) | 2013-02-25 | 2014-08-28 | Qualcomm Incorporated | Controlling many different devices from a smart controller |
US20160088049A1 (en) * | 2013-05-06 | 2016-03-24 | Convida Wireless, Llc | Internet of things (iot) adaptation services |
US9918351B2 (en) * | 2014-04-01 | 2018-03-13 | Belkin International Inc. | Setup of multiple IOT networks devices |
US20150358777A1 (en) * | 2014-06-04 | 2015-12-10 | Qualcomm Incorporated | Generating a location profile of an internet of things device based on augmented location information associated with one or more nearby internet of things devices |
US9791841B2 (en) * | 2014-08-12 | 2017-10-17 | Citrix Systems, Inc. | Designer interface for control systems |
US20160065653A1 (en) * | 2014-08-26 | 2016-03-03 | Fujitsu Limited | Internet of things (iot) device configuration construction |
US10476743B2 (en) * | 2014-10-13 | 2019-11-12 | Cisco Technology, Inc. | Automatic creation and management of a community of things for Internet of Things (IoT) applications |
CN104660697B (zh) * | 2015-02-11 | 2018-01-16 | 清华大学深圳研究生院 | 基于Kepler科学工作流传感网服务组合方法 |
US20160291826A1 (en) * | 2015-03-30 | 2016-10-06 | Nemrude Verzano | STANDALONE AND DISTRIBUTED APPLICATION FOR SIMULATION OF INTERNET OF THINGS (IoT) SCENARIOS |
US20160357522A1 (en) * | 2015-06-08 | 2016-12-08 | Cisco Technology, Inc. | Physical space map overlay and interaction for an internet of things integrated developer environment |
US10419438B2 (en) * | 2015-06-09 | 2019-09-17 | Intel Corporation | System, apparatus and method for auto-optimization of access control policy and key management in a network authoring tool |
US20170139380A1 (en) * | 2015-07-28 | 2017-05-18 | ATP-labs Ltd. | Cloud-based cultivation system for plants |
US10742739B2 (en) * | 2015-08-18 | 2020-08-11 | Comcast Cable Communications, Llc | Platform for controlling and operating network connected devices |
US20170063611A1 (en) * | 2015-08-28 | 2017-03-02 | Stringify Inc. | User Configuration Mechanism for Internet-of-Things (IOT) |
US11281829B2 (en) * | 2015-09-29 | 2022-03-22 | Wind River Systems, Inc. | Device, system, and method for adaptive simulation |
US10848944B2 (en) * | 2015-11-24 | 2020-11-24 | Verizon Patent And Licensing Inc. | Internet of things communication unification and verification |
US11221731B2 (en) * | 2015-12-14 | 2022-01-11 | Afero, Inc. | System and method for sharing internet of things (IOT) devices |
US10235480B2 (en) * | 2016-06-15 | 2019-03-19 | International Business Machines Corporation | Simulation of internet of things environment |
US10481925B2 (en) | 2016-07-01 | 2019-11-19 | Intel Corporation | Dynamic user interface in machine-to-machine systems |
US10623289B1 (en) * | 2016-09-28 | 2020-04-14 | NortonLifeLock Inc. | Systems and methods for detecting nonfunctional endpoint devices |
US11394633B2 (en) * | 2018-12-13 | 2022-07-19 | Microsoft Technology Licensing, Llc | Internet of things (IOT) device and solution certification as a service |
-
2016
- 2016-07-01 US US16/306,571 patent/US10481925B2/en active Active
- 2016-07-01 CN CN202110324995.7A patent/CN112995962A/zh active Pending
- 2016-07-01 EP EP21165278.9A patent/EP3862872A1/en active Pending
- 2016-07-01 CN CN201680086714.6A patent/CN109313543B/zh active Active
- 2016-07-01 EP EP16907592.6A patent/EP3479218B1/en active Active
- 2016-07-01 WO PCT/US2016/040627 patent/WO2018004642A1/en unknown
-
2019
- 2019-11-15 US US16/685,923 patent/US11675606B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102810197A (zh) * | 2011-10-20 | 2012-12-05 | 上海海洋大学 | 基于物联网的水产品溯源与安全预警方法及*** |
WO2014124318A1 (en) * | 2013-02-08 | 2014-08-14 | Interdigital Patent Holdings, Inc. | METHOD AND APPARATUS FOR INCORPORATING AN INTERNET OF THINGS (IoT) SERVICE INTERFACE PROTOCOL LAYER IN A NODE |
CN104914806A (zh) * | 2014-03-13 | 2015-09-16 | 阿瓦亚公司 | 经由移动消息传送私密/安全性中介***连接人和事物 |
KR20150118631A (ko) * | 2014-04-14 | 2015-10-23 | 전자부품연구원 | IoT 디바이스 제어용 UI 방법 및 이를 적용한 제어장치 |
CN105530173A (zh) * | 2016-01-19 | 2016-04-27 | 陈勤 | 可控开放暨开发接入的物联Email体系、实现方法及应用 |
Non-Patent Citations (1)
Title |
---|
"Papyrus for IoT-A Modeling Solution for IoT";Saadia Dhouib;《Eclipse Foundation》;20160430;全文 * |
Also Published As
Publication number | Publication date |
---|---|
EP3479218B1 (en) | 2024-02-14 |
EP3479218A4 (en) | 2020-02-26 |
US11675606B2 (en) | 2023-06-13 |
US20200334046A1 (en) | 2020-10-22 |
US10481925B2 (en) | 2019-11-19 |
CN109313543A (zh) | 2019-02-05 |
US20190138318A1 (en) | 2019-05-09 |
CN112995962A (zh) | 2021-06-18 |
EP3862872A1 (en) | 2021-08-11 |
EP3479218A1 (en) | 2019-05-08 |
WO2018004642A1 (en) | 2018-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109313543B (zh) | 机器对机器***中的动态用户界面 | |
US11398952B2 (en) | Automated configuration of machine-to-machine systems | |
US11706089B2 (en) | Distributed framework for resilient machine-to-machine system management | |
US11243814B2 (en) | Diagnosing slow tasks in distributed computing | |
US11652886B2 (en) | Reusable device management in machine-to-machine systems | |
US20200396296A1 (en) | Cognitive edge processing for internet-of-things networks | |
US10686626B2 (en) | Intelligent gateway configuration for internet-of-things networks | |
US20180096261A1 (en) | Unsupervised machine learning ensemble for anomaly detection | |
US11962644B2 (en) | Resource orchestration brokerage for internet-of-things networks | |
US20190213446A1 (en) | Device-based anomaly detection using random forest models | |
US20200065123A1 (en) | Simulation of internet of things systems | |
US20210141351A1 (en) | Declarative intentional programming in machine-to-machine systems | |
WO2018182746A1 (en) | Hotpluggable runtime |
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 |