可上网设备的基于模板的载入
背景技术:
1.近年来,可用的智能可上网设备的种类数量迅速增加,比如家用电器(洗衣机、冰箱、洗碗机、炉灶/烤箱等)、数字助理设备、智能传感器等。此类设备可以统称为“物联网”或iot,并且使用此类设备构建的应用(比如,扫描智能冰箱内容并生成建议的杂货清单或自动订购杂货的应用)可以称为iot应用。物联网涵盖了广泛的各种领域。例如,随着越来越多的自动化被引入交通领域(例如,以半自动或全自动车辆的形式),甚至汽车、卡车和其他车辆也逐渐开始依赖物联网,或成为其中的一部分。
2.为了参与物联网,单个iot设备通常需要在称为载入的过程中正确连接到后端系统。如果载入成功,那么后端系统可能会从iot设备接收数据并将更新发送回设备。现有的载入工作流程变化很大,例如,根据设备类型、设备制造商等。例如,不同的设备可以使用不同类型的身份信息来识别自己,并且可以使用各种技术来验证不同类型的身份信息。各种载入工作流程为iot设备的安装带来了额外的复杂性。
附图说明
3.图1a图示了根据一些实施方案的用于可上网设备的基于模板的载入的示例系统环境。
4.图1b图示了根据一些实施方案的用于可上网设备的基于模板的载入的示例系统环境(包括鉴证器)的其他方面。
5.图2图示了根据一些实施方案的用于可上网设备的基于模板的载入的示例系统环境(包括可上网设备与物联网应用之间的连接)的其他方面。
6.图3图示了根据一些实施方案的用于可上网设备的基于模板的载入的示例系统环境(包括使用计算服务来执行用于验证和生成设备配置的任务)的其他方面。
7.图4是图示根据一些实施方案的用于可上网设备的基于模板的载入的方法的流程图。
8.图5是表示根据一些实施方案的用于预载入可上网设备的技术的序列图。
9.图6a、图6b和图6c是表示根据一些实施方案的用于可上网设备的基于模板的载入技术的序列图。
10.图7图示了可以在一些实施方案中使用的示例计算设备。
11.尽管本文通过举例的方式针对若干实施方案和说明性附图描述了实施方案,但是本领域技术人员将认识到,实施方案不限于所描述的实施方案或附图。应理解的是,附图和对其的详细描述并非旨在将实施方案限制于所公开的特定形式,而相反,旨在覆盖落入由所附权利要求限定的精神和范围内的所有修改、等效物和替代方案。本文所使用的标题仅用于组织目的,并不意味着用于限制说明书或权利要求的范围。如贯穿本技术所使用的,词语“可以”以允许的意义(即,意味着“有可能”)而不是强制的意义(即,意味着“必须”)来使用。类似地,词语“包括”、“包括的”、以及“包括有”意味着“包括,但不限于此”。
具体实施方式
12.描述了用于可上网设备(internet-connectible device,icd)的基于模板的载入的方法、系统和计算机可读介质的各种实施方案。icd可以表示各种产品或嵌入其中,比如家庭自动化设备、家用电器、制造设备、汽车、恒温器和其他传感器、智能交通信号灯等。在一些实施方案中,icd可以包括物联网(iot)设备,尽管本文所描述的技术不限于任何特定的设备类别或类型。就其与远程系统的关系而言,icd也可以称为客户端设备。许多icd可以使用与远程服务提供商的服务器的连接(可能是长期连接),以便在需要传输数据时将数据从客户端设备流式传输到服务器以及从服务器流式传输到客户端设备.术语“载入”可以指创建此类连接的过程。使用先前的方法,单个设备或单个设备制造商具有不同的工作流程和应用来载入他们的设备。例如,一个供应商的智能恒温器可能需要与另一个供应商的智能恒温器不同的应用或一组步骤来建立设备的身份,授予设备访问本地网络的权限,并配置设备以使其正如在其特定背景下所预期的那样执行。此类设备的安装可能会因设备之间或供应商之间的载入差异而变得复杂。
13.使用本文所描述的技术,可使用模板或其他结构化文档将可上网设备(icd)载入远程系统(例如,托管在云中的一个或多个应用、服务器或服务)。特定模板可以与远程系统的特定账户相关联。模板可以表示一组指令和/或一组条件,用于为与特定账户相关联的设备执行载入任务。模板可以(至少部分地)由所述账户的持有人或由账户持有人授权的管理员定义。使用相关模板中的指令和/或条件,设备载入服务或其他基于云的系统可以将设备与系统组(比如,用户账户)相关联,验证设备的身份,为设备生成配置(包括远程系统的访问凭证),和/或执行其他任务以促进云(例如,云中的应用)与设备之间的交互。例如,来自不同供应商的两个智能恒温器可能使用不同的载入模板,但在设备安装人员的移动设备上安装了相同的安装应用。如本文所描述的载入模板的使用可以实现在各种类型的客户端设备与远程系统之间的连接的创建以及以简化和/或标准化的方式配置客户端设备。
14.正如本领域技术人员根据本公开将理解的那样,实施方案可能能够实现某些技术优势,包括以下一些或全部:(1)通过使用标准化模板和单个载入应用来降低将icd载入远程系统的延迟和复杂性,以简化载入过程;(2)通过使用可用于执行设备身份和背景验证的标准化模板,增强向远程系统载入icd的安全性;(3)通过使用可用于配置设备和应用的标准化模板来提高iot/icd设备和应用的性能;等等。
15.图1a和图1b图示了根据一些实施方案的用于可上网设备的基于模板的载入的示例系统环境。设备载入服务100可以基于预定义的规则、策略、条件和/或其他标准来允许或拒绝设备载入。载入可以导致设备(比如,可上网设备150)与一个或多个基于云的或远程应用或系统(比如,物联网应用180)之间的连接。设备载入服务100和iot应用180可以在云中实现,例如在一个或多个云计算环境195中,所述环境可能在地理上远离icd 150。icd 150与iot应用180之间的连接可以是持久的,使得设备和远程应用可以在相对较长的持续时间(例如,数月、数年等)内相互发送数据,而不必重复载入过程。例如,智能恒温器一旦载入,可能会在数月或数年期间自动将温度更新发送到托管在云中的远程系统。规则、策略、条件和/或标准可以由客户(至少部分地)确定或定义。客户可能包括icd的供应商和负责icd与远程应用之间交互的其他实体。客户承担的责任可能包括财务责任,使得基于云的实体可以向客户评估icd与云之间的交互和/或此类交互使用的云资源的费用。客户通常可以包括
管理iot应用(比如,应用180)的个人或组织,并且不一定包括icd的最终用户或icd的个别安装人员(技术人员)(比如,用户170)。
16.在一些实施方案中,规则、策略、条件和/或标准可以在载入模板125中表示。载入模板125可以表示表达icd载入指令的结构化文档。特定的载入模板(比如,模板125a)可以描述icd(比如,icd 150)可以向系统(例如,服务100)识别自己所依据的条件,将自己与系统组(比如,用户账户)相关联,并接收与本地网络(例如,使用wifi凭证)以及云计算环境195中的组件(例如,iot应用180)并且可能与其他设备交互所需的配置。在一个实施方案中,模板可以包括与以下元素中的一个或多个相关(例如,定义)的信息:身份证明和背景、账户策略和凭证/配置。给定账户的载入模板可以由账户的持有人或者由账户持有人授权的管理员来确定、生成或以其他方式提供给服务100。
17.身份证明和背景(proof and context of identity,pci)可能与设备可以做出的身份声明有关。pci有时可能包括基于硬件的信息(例如,使用硬件支持的密码术)。pci可以基于设备与另一附近设备(例如,鉴证器160,比如载入设备、移动设备或本地集线器)的接近度。背景可以与设备的特定位置有关,例如在特定地址、在特定房间等。背景可能包括设备的mac地址、设备的蓝牙id、设备或鉴证器的gps位置等。pci的元素通常可以由安装人员或技术人员(例如,用户170)或由鉴证器设备160提供。给定设备的pci形式可能因设备而异,因供应商而异,等等。例如,一些设备可能提供基于硬件的身份证明,而其他设备可能依赖于安装人员或鉴证器设备提供的信息。使用载入模板125和设备载入服务100,不同形式的pci可以用于验证icd的身份并允许或拒绝具有相同通用载入工作流和/或相同载入应用的那些设备的载入请求。在一些实施方案中,从安装人员(例如,用户170)的角度来看,对于不同的设备来说,载入过程可能是相似的。
18.如图1a所示,pci 151可以位于设备150本身上,例如,如编码在设备的硬件中和/或由用户170输入到设备中。为了启动载入,设备150可以向云195中的设备载入服务100发送载入请求152。请求152可以通过连接两个组件的一个或多个网络190发送,例如发送到设备150已知的地址。如图1a所示,设备150可能已经例如经由用户170输入的wifi凭证来访问网络190。pci 151可以包括在载入请求152中,或者可以在由设备150发送的后续信息包中提供。用于icd 150的特定载入模板的识别符可以包括在载入请求152中,或者可以在由设备150发送的后续信息包中提供。模板可以由用户170选择,或者可以替代地包括在设备150的初始设置中。
19.如图1b所示,pci 161可以由鉴证器设备160捆绑并签名。鉴证器160可以表示可以访问网络190并且可以鉴证设备150的身份证明的中间设备(例如,由安装人员操作的移动设备)。在一个实施方案中,鉴证器160可以从设备150本身获得pci 161的一部分,并且可以自己确定pci的另一部分(或利用来自用户170的输入)。为了启动载入,鉴证器设备160可以向云195中的设备载入服务100发送载入请求162。请求162可以通过连接两个组件的一个或多个网络190发送,例如发送到鉴证器设备160已知的地址。如图1b所示,icd 150在载入之前可能无法访问网络190,但可以例如通过蓝牙连接或其他本地信道与鉴证器160通信。pci 161可以包括在载入请求152中,或者可以在由鉴证器设备160发送的后续信息包中提供。用于icd 150的特定载入模板的识别符可以包括在载入请求152中,或者可以在由设备150发送的后续信息包中提供。模板可以由用户170选择,例如,使用安装在鉴证器设备160上的载
入应用。
20.服务100可以接收载入请求并开始使用适当的载入模板以尝试载入设备150的过程。服务100可以包括用于设备到账户链接的组件110,所述组件110识别设备150应该与之关联的用户账户。服务100可以包括或可以访问描述具有云计算环境195或具有单个组件(例如,应用180)的一组账户115的信息。例如,账户115可以包括账户115a到账户115n。所选账户(例如,账户115a)可以例如(至少部分地)基于载入模板id、pci和/或随载入请求接收的其他信息来确定性地确定。如上所讨论,用户账户可以与特定的客户相关联,比如icd的供应商或负责icd与远程应用180之间交互的另一实体。服务100可以(至少部分地)基于可用于识别账户的信息(由icd或由鉴证器提供)来确定账户,例如,账户识别符或可以将设备映射到账户识别符的信息。在一些实施方案中,服务100可以(至少部分地)基于从设备150或鉴证器160接收的信息(比如,链接到账户id的模板id或账户id本身)来确定账户。在一些实施方案中,服务100可以在不从设备150或鉴证器160接收账户id的情况下,例如,(至少部分地)基于pci和/或模板id来确定账户。
21.所选用户账户可能具有反映在一个或多个载入模板中的一个或多个账户策略。服务100可以包括用于载入模板检索的组件120,所述组件120例如基于随载入请求接收的模板id来识别设备150应当与之相关联的载入模板(例如,模板125a)。服务100可以包括或可以访问一组模板125。例如,模板125可以包括模板125a到模板125n。模板125可以由模板id以及客户定义的名称来识别。可以对模板125进行版本控制,使得每次编辑都可以创建一个新版本。模板125可以(至少部分地)由账户持有人(客户)或指定的管理员创建或定义,并且单独的模板125可以特定于特定的客户账户115。所选模板125a可以包括描述可用于设备载入的pci的类型或形式的账户策略。账户策略还可以描述设备可以被载入的标准或条件。
22.在一些实施方案中,服务100可以使用适当的模板125a来验证设备150的身份。服务100可以包括用于pci验证的组件130。pci验证130可以确定所提供的pci 151是否符合模板125a中定义的预期形式的pci。pci验证130还可以使用pci来验证设备150的身份。在验证设备身份时,pci验证130可以使用特定于pci的形式的技术。例如,如果pci包括根据特定硬件供应商的标准来表达的基于硬件的身份信息,那么所述供应商的验证技术可以用于身份验证。模板125可以足够灵活以涵盖用于身份验证的多种行业标准。如果pci的形式未能满足模板125a(例如,账户策略)的指令,那么可以拒绝载入请求。如果身份验证本身失败,那么载入请求可能会被拒绝。可以记录失败的载入尝试,例如,通过对失败的描述、账户的识别符、识别设备的信息(例如,提供的pci)、时间戳和/或可用于执行安全审查的其他信息。否则,载入过程可能会继续。
23.在一些实施方案中,服务100可以使用适当的模板125a来配置设备150。服务100可以包括用于设备配置的组件140。设备配置140可以确定或生成设备150可以用来连接到iot应用180的设备配置。设备配置信息可以包括用于访问设备150附近的wifi网络或其他本地网络的访问凭证。设备配置信息可以包括用于访问云195的元素(例如,iot应用180)的访问凭证。设备配置信息可以包括设备可以访问应用180的端点,例如统一资源定位符(uniform resource locator,url)或其他地址。如果设备已经连接到网络190或以其他方式连接到鉴证器160,那么服务100可以将配置信息发送到设备150,鉴证器160又可以通过蓝牙或另一本地信道将配置信息提供给设备150。
24.在一些实施方案中,服务100执行的各种功能可以在多轮中重复,例如,引导本地网络访问(例如,通过提供wifi凭证),然后在设备150与应用180之间创建连接。在一些实施方案中,设备150可以证实账户策略以确保它与设备的期望相匹配。例如,智能家居设备可以通过证实服务器认证来检查它是否只接受来自与其供应商相关联的账户的指令。
25.图2图示了根据一些实施方案的用于可上网设备的基于模板的载入的示例系统环境(包括可上网设备与物联网应用之间的连接)的其他方面。如上所讨论,设备配置信息250可以包括访问凭证251以及设备可以访问应用180的端点252。设备配置信息250可以包括客户定义的键值对的任意映射。通过使用这个配置信息250,icd 150和基于云的iot应用180可以使用长期连接来交换信息。例如,icd 150可以随时间提供定期测量,并且应用180可以提供偶尔更新以影响设备的功能性。如果鉴证器160被用于启动载入,那么鉴证器可能会被设备150与应用180之间的这种长期存在的连接绕过。
26.设备配置250可以影响设备150的行为,使得设备可以根据设备配置中指定或指示的信息执行一个或多个动作。设备的行为可以包括设备尝试根据设备配置中指定的地址连接到云中的特定端点。设备的行为可以包括设备根据设备配置中指定的凭证向云中的端点提供访问凭证。设备的行为可以包括设备根据设备配置收集数据,例如,以设备配置中指示的格式,或者在接收到表示支持语音的设备的设备配置中指定的“唤醒词”的语音输入之后,根据设备配置中指示的频率或时间表,所述支持语音的设备被配置为将语音输入流式传输到云。设备的行为可以包括设备根据设备配置将信息(例如,由与设备相关联的传感器收集的数据)发送到云中的端点,例如,以设备配置中指示的一定频率发送到设备配置中指定的地址。设备的行为可以包括设备从云中的端点接收信息(例如,对配置信息的修改)并根据设备配置验证信息的来源。
27.设备载入服务100可以包括一个或多个计算设备,所述一个或多个计算设备中的任何计算设备可以由图7中图示的示例计算设备3000实现。在各种实施方案中,设备载入服务100的不同服务、组件和/或模块的功能性可以由相同的计算设备或不同的计算设备提供。在一个实施方案中,如果使用不同的计算设备来实现各种组件中的任何组件,那么相应的计算设备可以例如经由网络通信地联接。设备载入服务100的组件中的每一个可以表示能够执行其相应功能的软件和硬件的任意组合,如下所讨论。由设备载入服务100实现的操作可以自动执行,例如在初始配置阶段之后不需要用户发起或用户干预,并且以编程方式执行,例如通过在至少一个计算设备上执行程序指令。在一个实施方案中,设备载入服务100的各个方面可以随着时间重复执行。设备载入服务100可以包括未示出的另外组件、比所示出的组件更少的组件,或与所示出的组件不同的组合、配置或数量的组件。在各种实施方案中,本文所描述的用于设备载入服务100的功能性可以被实现为与面向服务的架构中的其他服务协作的服务,或者替代为另一种类型的系统或后端组件。服务100可以使用一个或多个服务实例来实现,每个服务实例可以包括关于图1a和图1b描述的功能性。
28.在至少一些实施方案中,比如icd 150的可上网设备(icd)可以包括一个或多个处理器和存储器。存储器可以存储可执行指令,当这些指令在一个或多个处理器上执行时,使一个或多个处理器执行操作,比如连接到本地网络、与网络端点(例如,托管在云中的应用)通信等。在一些实施方案中,可以从网络端点获得或下载用于icd的一组附加可执行指令(例如,包括固件或软件)。作为附加指令的执行的结果,icd可以在各种实施方案中获得期
望的设备状态,其中与应用相关联的一个或多个操作可以由icd执行。请注意,icd的资源能力在不同的实施方案中可能会有所不同:一些icd可能具有非常有限的处理能力和非常有限的存储器,而其他icd可能配备有高端cpu(中央处理单元)或处理核心和更大的存储器。
29.设备载入服务100可以经由一个或多个网络190与其他组件(例如,icd和鉴证器)通信。在各种实施方案中,网络190可以涵盖在两个组件之间建立基于网络的通信所必需的联网硬件和协议的任何合适的组合。例如,网络190通常可以涵盖共同实现因特网的各种电信网络和服务提供商。网络190还可以包括比如局域网(lan)或广域网(wan)的专用网络以及公共或专用无线网络。例如,两项服务可以分别在具有他们自己的内部网络的企业内分配。在此类实施方案中,网络190可以包括在第一组件与因特网之间以及在因特网与第二组件之间建立联网链接所必需的硬件(例如,调制解调器、路由器、交换机、负载平衡器、代理服务器等)和软件(例如,协议栈、计费软件、防火墙/安全软件等)。在一些实施方案中,组件可以使用专用网络而非公共因特网来彼此通信。
30.在一个实施方案中,设备载入服务100和/或应用180的方面可以使用提供商网络或其他云计算环境的资源来实现。提供商网络可以表示由比如企业或公共部门组织的实体建立的网络,以向一组分布式客户端提供可经由因特网和/或其他网络访问的一项或多项服务(比如,各种类型的网络可访问计算或存储)。提供商网络可以包括托管各种资源池(比如,物理和/或虚拟化计算机服务器、存储设备、联网装备等的集合)的众多数据中心,这些资源池用于实现和分布由提供商所提供的基础设施和服务。在一些实施方案中,计算资源可以在被称为“实例”的单元(比如,虚拟或物理计算实例)的单元中提供给客户端。例如,虚拟计算实例可以包括具有指定的计算能力(可以通过指示cpu的类型和数量、主存储器大小等来指定)的一个或多个服务器以及指定的软件栈(例如,可以在管理程序之上运行的操作系统的特定版本)。许多不同类型的计算设备可以被单独地或以组合方式使用以实现不同实施方案中的提供商网络的资源(包括通用或专用计算机服务器、存储设备、网络设备等)。因为提供商网络的资源可以同时在多个客户端(或承租人)的控制下,所以可以说供应商网络提供了多租户并且可以被称为多承租人提供商网络。在一些实施方案中,提供商网络的运营商可以为其客户端实现一组灵活的资源预留、控制和访问界面。例如,资源管理器可以实现程序资源预留界面(例如,经由网站或一组网页),所述程序资源预留界面允许客户端(可能包括提供商网络内的其他组件)了解、选择、购买访问和/或预留提供商网络供应的计算实例。此类界面可以包括允许浏览资源目录并提供所支持的不同类型或大小的资源、所支持的不同预留类型或模式、定价模型等的细节和规范的能力。
31.在至少一些实施方案中,涉及使用比如智能电器、智能传感器等的icd的应用可以使用提供商网络或其他云计算环境195的一项或多项可上网服务的资源来实现。提供商网络的一项或多项计算服务,比如虚拟化计算服务,可例如用于托管后端应用逻辑,而提供商网络的存储服务可用于存储在icd处生成或收集的数据。在至少一个实施方案中,提供商网络可以包括iot应用管理服务,包括例如能够在应用的潜在大量icd之间和/或icd与后端应用服务器之间进行有效通信的消息代理。
32.图3图示了根据一些实施方案的用于可上网设备的基于模板的载入的示例系统环境(包括使用计算服务来执行用于验证和生成设备配置的任务)的其他方面。在一些实施方案中,pci验证130和/或设备配置140可以使用执行任务的外部实体来实现。例如,无服务器
计算服务300可以执行由设备载入服务100指示的功能。在一个实施方案中,可以通过使用无服务器计算服务300执行验证任务330来执行pci验证130。在一个实施方案中,可以通过使用无服务器计算服务300执行配置生成任务340来执行设备配置。任务330和340可以表示可执行程序代码或高级编程指令,所述可执行程序代码或高级编程指令可以由计算服务300使用由计算服务管理的并且不是由设备载入服务100分配的计算资源来实现。可以在适当的模板125a中指示任务330和/或340。任务330和/或340可以由不同于管理云计算环境195的实体的第三方拥有和/或操作。例如,验证任务330可以由icd的可用于以安全方式验证icd的硬件元件的供应商开发和管理。通过利用外部服务300或其他第三方计算环境来执行任务,基于模板的设备载入可以扩展到各种验证和/或配置技术。
33.图4是图示根据一些实施方案的用于可上网设备的基于模板的载入的方法的流程图。如400所示,可以例如通过来自可上网设备(icd)或鉴证器设备(例如,智能手机、平板电脑、专用的载入设备等)的设备载入服务来接收载入请求。请求可以包括身份证明和背景(pci)信息或与之相关联。pci可以与设备可以做出的身份声明以及背景信息(例如,关于设备的位置)有关。pci的元素通常可以由安装人员或技术人员或由鉴证器设备提供。
34.如410所示,方法可以确定icd的载入模板。可以(至少部分地)基于随载入请求提供的模板id来确定载入模板。在一个实施方案中,可以例如(至少部分地)基于模板id或随载入请求接收的其他信息来确定性地确定icd的账户。账户可能与特定的客户相关联,比如icd的供应商或负责icd与远程应用之间交互的另一实体。载入模板可以表示表达icd载入指令的结构化文档。模板可以描述icd可以向系统(例如,设备载入服务)识别自己所依据的条件,将自己与系统组(比如,用户账户)相关联,并接收与本地网络以及iot应用或其他基于云的组件交互(例如,使用wifi凭证)所需的配置。在一个实施方案中,模板可以包括与(例如,定义)以下元素中的一个或多个相关的信息:身份证明和背景、账户策略和凭证/配置。
35.如420中所示,方法可以确定是否已经根据载入模板中指示的任何标准验证pci。验证可以包括检查所提供pci的形式是否符合模板(或账户策略)中表达的预期pci形式。验证还可以包括检查所提供的pci的内容是否被验证,例如,使用在模板(或账户策略)中表达的验证技术。如430所示,如果无法验证pci的形式或内容,那么可以拒绝载入请求。
36.如440所示,如果pci的形式和内容都被验证,那么方法可以继续使用载入模板来确定icd的设备配置。设备配置可以包括托管在云中的网络和/或物联网(iot)应用的访问凭证。iot应用的访问凭证和端点可以在载入模板中指示。如450所示,可以将设备配置发送到设备本身。如果设备已经在本地网络上(例如,使用用户输入的或在前一轮载入期间提供的wifi凭证),那么配置可以直接发送到设备,或者经由鉴证器设备间接发送。
37.如460所示,可以在设备与iot应用之间建立连接。设备可以使用提供的配置(包括凭证)联系iot应用并建立连接。icd与iot应用之间的连接可以是持久的,使得设备和远程应用可以在相对较长的持续时间(例如,数月、数年等)内相互发送数据,而不必重复载入过程。例如,智能恒温器一旦载入,可能会在数月或数年期间自动将温度更新发送到托管在云中的远程系统。设备配置可以影响设备的行为,使得设备可以根据设备配置中指定或指示的信息执行一个或多个动作。例如,设备的行为可以包括设备尝试根据设备配置中指定的地址连接到云中的特定端点,设备根据设备中指定的凭证向云中的端点提供访问凭证配
置,设备根据设备配置收集数据,设备根据设备配置将信息(例如,由与设备相关联的传感器收集的数据)发送到云中的端点,和/或设备根据设备配置从云中的端点接收信息(例如,对配置信息的修改)并验证信息的来源。
38.图5是表示根据一些实施方案的用于预载入可上网设备的技术的序列图。设备载入服务100可以包括比如模板管理器502和信任管理器503的组件。模板管理器502可以维护模板125。信任管理器503可以负责认证和授权来自icd的传入请求。信任管理器503可以基于预定义的规则、策略、条件和/或由客户定义的其他标准来允许或拒绝设备载入。此类规则、策略、条件和/或标准可以在载入模板中表示。此外,云计算环境195可以包括角色管理器504,所述角色管理器504管理用户和用户组对云计算环境的各种组件的访问凭证。
39.在载入任何设备之前,云管理员501可以创建载入模板,如511所示。云管理员501可以表示icd的供应商或负责将icd与基于云的资源一起使用的另一实体。可以使用由模板管理器提供的一个或多个api来创建模板和/或将模板提供给模板管理器502。例如,模板管理器502可以提供用于列出模板、创建模板、描述模板、更新模板、删除模板、列出模板版本和描述模板版本的api。如512所示,管理员501可以将预分配的访问凭证上传到模板。如513所示,管理员501可以向针对将安装icd的技术人员505的特定角色授予载入访问权。如513所示,管理员501可以通知技术人员505哪个模板用于设备的特定安装或类型。
40.图6a、图6b和图6c是表示根据一些实施方案的用于可上网设备的基于模板的载入技术的序列图。设备载入服务100可以包括比如协调器603的组件。协调器603可以负责处理设备事件并将设备载入账户。账户可以被称为客户账户并且可以与账户持有人相关联。协调器603可以表示基于rest的服务,所述服务公开用于设备连接器和载入应用601的应用编程接口(api)。在一个实施方案中,当设备连接用于载入时,可以触发无服务器计算服务300来执行功能。设备连接器可以负责从设备接收载入请求并将配置发送回设备。信任管理器503可以负责公开载入令牌并执行授权任务。要开始载入目标平台,可以触发无服务器计算服务300执行称为云连接器的功能。模板管理器这个功能可以与模板管理器502交互以获取模板中的云配置并与审计服务交互以提供关于载入的审计细节。
41.在图6a中开始的序列图可以当技术人员505试图使用载入应用601(例如,技术人员操作的移动设备上的应用)而不一定具有如图5所示的预分配凭证来安装icd时使用。如611所示,技术人员505可以登录并经由载入应用601选择用于安装特定设备602的适当模板。如612所示,技术人员505可以指令应用602扫描新设备。如613所示,应用601可以连续扫描新设备并在发现时自动连接到设备,例如,经由蓝牙或另一本地可访问信道。如614所示,技术人员505可以打开设备602以供载入。如615所示,设备602可以经由wifi或蓝牙广告其自身以供载入。如616所示,载入应用601可以连接到设备602。如617所示,设备602可以使用可选地预分配的凭证(例如,用于访问wifi或另一本地网络)来请求载入应用601。
42.序列图可以在图6b中继续。如618所示,应用601可以向信任管理器503请求针对给定凭证组的临时载入票证。如619所示,信任管理器503可以向应用601提供设备凭证。如620所示,应用601可以将凭证(可能包括wifi凭证)推送到设备602。如621所示,设备602可以使用载入票证向设备载入服务100的载入协调器603请求载入。如622所示,协调器622可以向信任管理器503查询票证的凭证组。如623所示,如果查询到,那么信任管理器503可以返回组id,否则返回错误。
43.序列图可以在图6c中继续。如624所示,协调器603可以通过将参数和模板id传递给模板管理器502来请求评估载入模板。如625所示,模板管理器502可以返回具有云资源配置和设备本地配置的评估模板主体。如626所示,协调器可以为与icd相关联的客户创建云资源。云资源可以与icd寻求连接的应用604相关联。如627所示,协调器603可以将本地配置发送到设备602。如628所示,设备602可以使用所提供的凭证和配置连接到云中的应用604。
44.如上所讨论,载入模板可以包括结构化文档。在一个实施方案中,模板可以包括用于指示设备提供的背景的部分,比如:
[0045][0046]
在一个实施方案中,模板可以包括用于指示用户提供的背景(例如,使用载入应用)的部分,比如:
[0047][0048][0049]
在一个实施方案中,模板可以包括用于映射以基于提供的背景来获取键值查找的部分,比如:
[0050][0051]
在一个实施方案中,模板可以包括描述要为客户账户创建的云资源的部分,比如:
[0052]
[0053][0054]
在一个实施方案中,模板可以包括由客户账户创建并提供给安装人员的预载入配置部分,比如:
[0055][0056]
在一个实施方案中,模板可以包括指示应该发送到设备以完成载入过程的任何配置的部分,比如:
[0057][0058]
[0059]
在一个实施方案中,模板可以包括指定另一区域或账户中的部署目标的部分,比如:
[0060][0061]
在一个实施方案中,模板可以包括用于存储在云中的文档的附件部分,所述文档当载入完成时可以传送到设备,比如:
[0062][0063]
说明性计算机系统
[0064]
在至少一些实施方案中,实现本文所描述的一种或多种技术的一部分或全部的计算机系统可以包括如下计算机系统:包括或被配置为访问一种或多种计算机可读介质。图7图示了根据一个实施方案的此类计算设备3000。在所图示的实施方案中,计算设备3000包括经由输入/输出(i/o)接口3030联接到系统存储器3020的一个或多个处理器3010a到3010n。在一个实施方案中,计算设备3000还包括联接到i/o接口3030的网络接口3040。
[0065]
在各种实施方案中,计算设备3000可以是包括一个处理器的单处理器系统或包括若干处理器3010a到3010n(例如,两个、四个、八个或另一合适数量)的多处理器系统。在一个实施方案中,处理器3010a到3010n可以包括能够执行指令的任何合适的处理器。例如,在各种实施方案中,处理器3010a到3010n可以是实现各种指令集体系结构(instruction set architectures,isa)比如,x86、powerpc、sparc或mips isa或任何其他合适的isa)中的任何一种的处理器。在一个实施方案中,在多处理器系统中,处理器3010a到3010n中的每一个可以共同地,但不是必须地实现相同的isa。
[0066]
在一个实施方案中,系统存储器3020可以被配置为存储可以由处理器3010a到3010n访问的程序指令和数据。在各种实施方案中,系统存储器3020可以使用任何合适的存储器技术(比如,静态随机存取存储器(sram)、同步动态ram(sdram)、非易失性/闪存型存储器或任何其他类型的存储器)来实现。在所图示的实施方案中,实现一个或多个所期望的功能(比如,上述的方法、技术和数据)的程序指令和数据被示出作为代码(即,程序指令)3025和数据3026存储在系统存储器3020中。
[0067]
在一个实施方案中,i/o接口3030可以被配置为协调在处理器3010a到3010n、系统存储器3020以及设备中的任何外围设备(包括网络接口3040或其他外围接口)之间的i/o业务。在一些实施方案中,i/o接口3030可以执行任何必要的协议、定时或其他数据转换,以将来自一个组件(例如,系统存储器3020)的数据信号转换成适于由另一组件(例如,处理器3010a到3010n)使用的格式。在一些实施方案中,i/o接口3030可以包括对通过各种类型的外围总线(比如,外围组件互连(pci)总线标准或通用串行总线(usb)标准的变体)附接的设备的支持。在一些实施方案中,i/o接口3030的功能可以例如被分成两个或多个单独的组件
(比如,北桥和南桥)。在一些实施方案中,i/o接口3030(比如,系统存储器3020的接口)的一些或全部功能性,可以直接并入处理器3010a到3010n中。
[0068]
在一个实施方案中,网络接口3040可以被配置为允许在计算设备3000与附接到一个或多个网络3050的其他设备3060之间交换数据。在各种实施方案中,网络接口3040可以支持经由任何合适的有线或无线通用数据网络(比如,以太网类型)的通信。另外,在一些实施方案中,网络接口3040可以支持经由电信/电话网络(比如,模拟语音网络或数字光纤通信网络)、经由存储区域网络(比如,光纤通道san)、或者经由任何其他适当类型的网络和/或协议的通信。
[0069]
在一些实施方案中,系统存储器3020可以是计算机可读(即,计算机可访问)介质的一个实施方案,所述计算机可读介质被配置为存储如上所述的用于实现相对应的方法和装置的实施方案的程序指令和数据。在一些实施方案中,可以在不同类型的计算机可读介质上接收、发送或存储程序指令和/或数据。在一些实施方案中,计算机可读介质可以包括非暂时性存储介质或存储器介质,比如磁性或光学介质,例如,经由i/o接口3030联接到计算设备3000的磁盘或dvd/cd。在一个实施方案中,非暂时性计算机可读存储介质还可以包括任何易失性或非易失性介质,比如ram(例如,sdram、ddr sdram、rdram、sram等)、rom等,它们可以包括在计算设备3000的一些实施方案中作为系统存储器3020或另一类型的存储器。在一个实施方案中,计算机可读介质可以包括经由通信介质(比如,网络和/或无线链路(比如,可以经由网络接口3040实施))传送的传输介质或信号,比如,电信号、电磁信号或数字信号。可以使用存储在一个或多个处理器上或跨一个或多个处理器执行的程序指令的一种或多种非暂时性计算机可读存储介质来实现所描述的功能性。比如图7所图示的多个计算设备的部分或全部可以被用于实现在各种实施方案中所描述的功能性;例如,在一个实施方案中,运行在各种不同设备和服务器上的软件组件可以协作来提供功能性。在一些实施方案中,所描述的功能性的部分可以使用存储设备、网络设备或各种类型的计算机系统来实现。在各种实施方案中,如本文所使用的术语“计算设备”是指至少所有这些类型的设备,并且不限于这些类型的设备。
[0070]
能够鉴于以下条款来描述本公开的实施方案:
[0071]
1.一种系统,包括:
[0072]
多个计算设备,被配置为实现托管在云计算环境中的设备载入服务,其中所述设备载入服务被配置为:
[0073]
存储至少部分地由账户持有人确定的载入模板,其中所述载入模板表示与将设备载入到所述云计算环境相关联的一个或多个指令;
[0074]
经由网络接收包括可上网设备(icd)的身份证明和背景(pci)的载入请求,其中所述pci表示所述icd的唯一识别符;
[0075]
至少部分地基于所述载入请求来确定与所述账户持有人相关联的账户,其中所述账户与所述载入模板中的账户策略相关联;
[0076]
验证所述pci的形式是否符合所述载入模板中指示的一个或多个标准;
[0077]
使用所述账户策略中指定的身份验证技术来验证所述pci;
[0078]
至少部分地基于所述载入模板来生成设备配置,其中所述设备配置包括所述icd可使用的访问凭证;
[0079]
将所述设备配置发送到所述icd,其中所述icd的行为至少部分地基于所述设备配置来确定;以及
[0080]
在所述云计算环境中执行所述icd到应用的载入,其中所述icd使用所述访问凭证来经由所述网络与所述应用通信。
[0081]
2.根据条款1所述的系统,其中所述设备载入服务还被配置为:
[0082]
经由所述网络来接收包括附加icd的附加pci的附加载入请求,其中所述附加pci表示所述附加icd的唯一识别符;
[0083]
至少部分地根据所述附加载入请求来确定与所述账户持有人相关联的所述账户;
[0084]
未能验证所述附加pci的形式是否符合所述载入模板中指示的所述一个或多个标准;以及
[0085]
禁止将所述附加icd载入所述云计算环境中的所述应用。
[0086]
3.根据条款1或2中任一项所述的系统,其中所述pci由所述设备载入服务从连接到所述网络的鉴证器设备接收,其中所述pci是至少部分地基于来自所述icd的信息和来自所述鉴证器设备的信息而生成的,其中所述pci由所述鉴证器设备签名,并且其中所述设备配置是经由所述鉴证器设备发送到所述icd。
[0087]
4.根据条款1至3中任一项所述的系统,其中所述设备载入服务还被配置为:
[0088]
验证所述鉴证器设备是否符合所述载入模板中指示的一个或多个附加标准。
[0089]
5.一种方法,包括:
[0090]
由计算环境中的设备载入服务经由网络来接收可上网设备(icd)的身份证明和背景(pci);
[0091]
由所述设备载入服务来确定载入模板,其中所述载入模板与账户相关联,并且其中所述载入模板至少部分地由所述账户的持有人确定;
[0092]
验证所述pci是否符合所述载入模板的一个或多个标准;
[0093]
至少部分地基于所述载入模板来确定设备配置,其中所述设备配置包括所述icd可使用的访问凭证;以及
[0094]
将所述设备配置发送到所述icd,其中所述icd的行为至少部分地基于所述设备配置来确定,并且其中所述icd使用所述访问凭证来经由所述网络与所述计算环境中的应用通信。
[0095]
6.根据条款5所述的方法,还包括:
[0096]
使用所述载入模板中指示的身份验证技术来验证所述pci。
[0097]
7.根据条款5或6中任一项所述的方法,还包括:
[0098]
由所述设备载入服务经由所述网络来接收附加icd的附加pci;
[0099]
由所述设备载入服务确定与所述附加icd相关联的所述载入模板;
[0100]
未能验证所述附加pci是否符合所述载入模板的所述一个或多个标准;以及
[0101]
禁止所述附加icd访问所述计算环境中的所述应用。
[0102]
8.根据条款5至7中任一项所述的方法,其中所述pci由所述设备载入服务从连接到所述网络的鉴证器设备接收,其中所述pci是至少部分地基于来自所述icd的信息和来自所述鉴证器设备的信息而生成的,其中所述pci由所述鉴证器设备签名,并且其中所述设备配置是经由所述鉴证器设备发送到所述icd。
[0103]
9.根据条款5至8中任一项所述的方法,还包括:
[0104]
由所述设备载入服务来验证所述鉴证器设备是否符合所述载入模板中指示的一个或多个附加标准。
[0105]
10.根据条款5至9中任一项所述的方法,还包括:
[0106]
至少部分地基于所述载入模板来在所述计算环境中分配一个或多个资源,其中所述一个或多个资源与所述icd相关联。
[0107]
11.根据条款5至10中任一项所述的方法,其中所述背景包括所述icd的位置、所述icd的序列号或所述账户的识别符。
[0108]
12.根据条款5至11中任一项所述的方法,还包括:
[0109]
由所述设备载入服务经由所述网络来接收附加icd的附加pci,其中所述附加pci至少部分不同于所述pci;
[0110]
由所述设备载入服务来确定附加载入模板,其中所述附加载入模板与所述账户相关联,并且其中所述附加载入模板至少部分地由所述账户的所述持有人确定;
[0111]
验证所述附加pci是否符合所述附加载入模板的一个或多个标准;
[0112]
至少部分地基于所述附加载入模板来确定附加设备配置,其中所述附加设备配置包括所述附加icd可使用的附加访问凭证;以及
[0113]
将所述附加设备配置发送到所述附加icd,其中所述附加icd的行为至少部分地基于所述附加设备配置来确定,并且其中所述附加icd使用所述附加访问凭证来经由所述网络与所述计算环境中的所述应用通信。
[0114]
13.一种或多种存储程序指令的非暂时性计算机可读存储介质,所述程序指令在一个或多个处理器上或跨一个或多个处理器执行时执行:
[0115]
由云计算环境中的设备载入服务经由网络来接收载入请求,所述载入请求包括可上网设备(icd)的身份证明和背景(pci),其中所述pci表示所述icd的唯一识别符;
[0116]
由所述设备载入服务至少部分地基于所述载入请求来确定所述载入模板中的账户策略,其中所述载入模板与账户相关联,并且其中所述载入模板至少部分地由所述账户确定;
[0117]
由所述设备载入服务来验证所述pci是否符合所述载入模板的一个或多个标准;
[0118]
使用所述载入模板中指示的身份验证技术来验证所述pci;
[0119]
由所述设备载入服务至少部分地基于所述载入模板来确定设备配置,其中所述设备配置包括所述icd可使用的访问凭证;以及
[0120]
将所述设备配置从所述设备载入服务发送到所述icd,其中所述icd的行为至少部分地基于所述设备配置来确定,并且其中所述icd使用所述访问凭证来经由所述网络与所述云计算环境中的应用通信。
[0121]
14.根据条款13所述的一种或多种非暂时性计算机可读存储介质,还包括附加程序指令,所述附加程序指令在所述一个或多个处理器上执行或跨越所述一个或多个处理器执行时执行:
[0122]
由所述设备载入服务经由所述网络来接收包括附加icd的附加pci的附加载入请求;
[0123]
由所述设备载入服务至少部分地基于所述附加载入请求来确定与所述附加icd相
关联的所述账户策略;
[0124]
未能由所述设备载入服务来验证所述附加pci是否符合所述载入模板的所述一个或多个标准;以及
[0125]
禁止所述附加icd访问所述云计算环境中的所述应用。
[0126]
15.根据条款13或14中任一项所述的一种或多种非暂时性计算机可读存储介质,其中所述pci由所述设备载入服务从连接到所述网络的鉴证器设备接收,其中所述pci是至少部分地基于来自所述icd的信息和来自所述鉴证器设备的信息而生成的,其中所述pci由所述鉴证器设备签名,并且其中所述设备配置是经由所述鉴证器设备发送到所述icd。
[0127]
16.根据条款13至15所述的一种或多种非暂时性计算机可读存储介质,还包括附加程序指令,所述附加程序指令在所述一个或多个处理器上执行或跨越所述一个或多个处理器执行时执行:
[0128]
由所述设备载入服务来验证所述鉴证器设备是否符合所述载入模板中指示的一个或多个附加标准。
[0129]
17.根据条款13至16中任一项所述的一种或多种非暂时性计算机可读存储介质,其中在所述icd连接到所述网络之后,由所述设备载入服务从所述icd接收所述pci。
[0130]
18.根据条款13至17中任一项所述的一种或多种非暂时性计算机可读存储介质,还包括附加程序指令,所述附加程序指令在所述一个或多个处理器上执行或跨越所述一个或多个处理器执行时执行:
[0131]
由所述设备载入服务经由所述网络来接收附加载入请求,所述附加载入请求包括附加icd的附加pci,其中所述附加pci至少部分不同于所述pci;
[0132]
由所述设备载入服务至少部分地基于所述附加载入请求来确定附加载入模板中的附加账户策略,其中所述附加载入模板与所述账户相关联,并且其中所述附加载入模板至少部分地由所述账户的所述持有人确定;
[0133]
由所述设备载入服务来验证所述附加pci是否符合所述附加载入模板的一个或多个标准;
[0134]
由所述设备载入服务至少部分地基于所述附加载入模板来确定附加设备配置,其中所述附加设备配置包括所述附加icd可使用的附加访问凭证;以及
[0135]
将所述附加设备配置从所述设备载入服务发送到所述附加icd,其中所述附加icd的行为至少部分地基于所述附加设备配置来确定,并且其中所述附加icd使用所述附加访问凭证来经由所述网络与集中式计算环境中的附加应用通信。
[0136]
19.根据条款13至18中任一项所述的一种或多种非暂时性计算机可读存储介质,其中所述背景包括可用于识别所述账户的信息,并且其中所述账户策略是使用所述账户的所述识别符来确定的。
[0137]
20.根据条款13至19中任一项所述的一种或多种非暂时性计算机可读存储介质,其中所述账户由所述设备载入服务来确定,而无需从所述icd或从鉴证器设备接收所述账户的识别符。
[0138]
如附图中图示的和本文所描述的各种方法表示方法的实施方案的示例。在各种实施方案中,方法可以在软件、硬件或其组合中实现。在各种实施方案中,在这些方法中的各种方法中,可以改变步骤的顺序,并且可以添加、重新排序、组合、省略、修改各种元素等。在
各种实施方案中,可以自动地(例如,无需由用户输入直接提示)和/或可以以编程方式(例如,根据程序指令)执行在所述步骤中的各种步骤。
[0139]
本发明的说明书中所用的术语学仅出于描述特定实施方案的目的,并且不旨在限制本发明。如在本发明的说明书和所附权利要求中所用的,单数形式“一”、“一个”和“所述”旨在也包括复数形式,除非上下文另有明确说明。还应理解的是,本文所使用的术语“和/或”是指并且涵盖一个或多个相关联的所列项目中的任何和所有可能的组合。应进一步理解的是,当在本说明书中使用时,术语“包括”、“包括的”、“包括”和/或“包括的”指定了声明的特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或其组合。
[0140]
如本文所使用,取决于上下文,术语“如果”可以被解释为意味“当
……
时”或“在
……
时”或“响应于确定”或“响应于检测”。类似地,取决于上下文,短语“如果是确定的”或“如果[陈述的条件或事件]被检测到”可以被解释为意味“在确定时”或“响应于确定”或“在检测到[陈述的条件或事件]时”或“响应于检测到[陈述的条件或事件]”。
[0141]
应理解的是,尽管本文可以使用术语第一、第二等来描述各种元件,但是这些元件不应受这些术语限制。这些术语仅用于将一个元件与另一元件区分开。例如,在不脱离本发明的范围的情况下,第一接触可以被称为第二接触,并且类似地,第二接触可以被称为第一接触。第一接触和第二接触两者都是接触,但是它们不是同一接触。
[0142]
本文阐述了许多特定的细节以提供对所要求保护的主题的透彻理解。然而,本领域技术人员将理解,所要求保护的主题可以在没有这些特定的细节的情况下实施。在其他情况下,将不详细描述本领域技术人员已知的方法、装置或系统,使得不混淆所要求保护的主题。对于受益于这个公开内容的本领域技术人员来说显而易见的是,可以进行各种修改和改变。本发明旨在包括所有此类修改和变化,因此,以上描述应被认为是说明性的而不是限制性的。
转载请注明原文地址:https://tc.8miu.com/read-2993.html