Management and control across heterogeneous edge devices of client networks using device abstraction
Through automatic onboard system and device abstraction technology, the problem of users needing to manually configure and manage different types of edge devices is solved, and the automated onboard and unified management of edge devices is realized, improving efficiency and user experience.
Patent Information
- Application Number
- CN202380050702.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-06-30
- Filing Date
- 2023-06-29
- Publication Date
- 2025-02-28
AI Technical Summary
In the prior art, users need to manually configure edge devices into a home network, and different types of edge devices are incompatible, making it difficult for users to manage or control these devices.
Through an automatic onboard system, the device onboard and integrated services are used to receive the identifier of the edge device, determine its type, and select the appropriate device proof for verification. Then, establish a secure connection, register an edge device, and send management agents and client certificates to achieve automatic onboarding and management. At the same time, different types of edge devices are simulated using device abstraction, allowing applications to interact with different types of edge devices with a unified API.
It greatly reduces the time and computing resources for onboard and management of edge devices, realizes unified management and control of different types of edge devices, and improves user experience.
Smart Images

Figure CN119547404A_ABST
Abstract
Description
Background Art
[0001] The Internet of Things (IoT) is a phrase given to the interconnection of computing devices dispersed around the world within the existing Internet infrastructure. Individuals and organizations can use any number of IoT devices (also referred to herein as "edge devices") to perform a variety of tasks. For example, a user can purchase a keypad from a vendor that can be used to enter a password to arm or disarm a home security system. A user can also purchase a smart light bulb that can be turned on or off remotely (e.g., using a smartphone app).
[0002] The process of configuring an edge device for use in a user's home network may include onboarding the edge device in a service provider's network. Onboarding of an edge device may involve many different steps, such as connecting to the home network and the service provider network, authenticating and registering the device in the provider network, and installing software on the edge device. Manually configuring an edge device may be a cumbersome and time-consuming process for a user, especially when different types of devices from different vendors / manufacturers need to be added to the user's home network. Even after a user successfully configures an edge device for use in a home network, the user may not be able to use a particular device or application to manage or control the different types of edge devices due to incompatibilities between different types of devices (e.g., devices from different vendors / manufacturers). BRIEF DESCRIPTION OF THE DRAWINGS
[0003] Figure 1 is a logical block diagram illustrating a system for automatic onboarding of heterogeneous edge devices onto a client network, according to some embodiments.
[0004] Figure 2 is a logical block diagram illustrating a system for management and control of heterogeneous edge devices across a client network using device abstraction, according to some embodiments.
[0005] Figure 3 On-board and universal control of heterogeneous devices along a cloud continuum is demonstrated according to some embodiments.
[0006] Figure 4 is a logical block diagram illustrating a system for management and control of heterogeneous edge devices across a client network using device abstraction, according to some embodiments.
[0007] Figure 5 is a logical block diagram illustrating a system for automated onboarding, management, and control of heterogeneous edge devices across a client network using device abstraction, according to some embodiments.
[0008] Figure 6is a logical block diagram illustrating a system for automated onboarding, management, and control of heterogeneous edge devices across a client network using device abstraction, according to some embodiments.
[0009] Figure 7 is a high-level flow chart illustrating various methods and techniques for implementing automatic onboarding of heterogeneous edge devices onto a client network in accordance with some embodiments.
[0010] Figure 8 is a high-level flow chart illustrating various methods and techniques for implementing management and control across heterogeneous edge devices of a client network using device abstraction in accordance with some embodiments.
[0011] Fig. 9 is a block diagram illustrating an example computing system in accordance with some embodiments.
[0012] Although embodiments are described herein by way of example for several embodiments and illustrative figures, those skilled in the art will recognize that embodiments are not limited to the described embodiments or drawings. It should be understood that the drawings and detailed descriptions thereof are not intended to limit the embodiments to the specific forms disclosed, but on the contrary, it is intended to cover all modifications, equivalents and alternatives falling within the spirit and scope defined by the appended claims. The titles used herein are only for organizational purposes and are not intended to limit the scope of this specification or claims. As used throughout this application, the word "may" is used in an allowed sense (i.e., meaning possible), rather than a mandatory sense (i.e., meaning must). Similarly, the words "include, including and includes" are meant to include but not limited to. DETAILED DESCRIPTION
[0013] According to some embodiments, the systems and methods described herein can be used in various combinations and embodiments for automatic onboarding of different types of edge devices (e.g., heterogeneous edge devices) onto client networks and service provider networks. In embodiments, device onboarding and integration services can automatically perform at least some or all of the onboarding processes for different types of edge devices to be used at client networks.
[0014] For example, the device onboarding and integration services may receive a device identifier (ID) and determine the type of edge device to be used at the client network. Based on the type of edge device, the service may select a specific type of device certification for verifying the edge device. The device onboarding and integration services may also establish a secure connection with the edge device and register the edge device. The device onboarding and integration services may send a specific device management agent and client certificate to the edge device to enable communication with the service. The device management agent may also send indications of different locations for device download components and / or indications of services that the device will subscribe to (e.g., so that the edge device boots / configures itself and onboards to the service).
[0015] In various embodiments, two or more edge devices may be considered to be different types of edge devices (e.g., heterogeneous edge devices) if they are manufactured by different device vendors (e.g., have different hardware and / or software components from each other) and / or use different application programming interfaces (APIs) to interact with other devices and applications (e.g., send information or commands to other devices). A device using one API may not be able to use its API to interact with another device or application using a different API. For example, a camera from one vendor may not be able to send its updated status (e.g., a newly collected image) to another edge device or application using a different API from another vendor.
[0016] According to some embodiments, the systems and methods described herein may also be used in various combinations and in various embodiments for managing and controlling different types of edge devices (e.g., heterogeneous edge devices) across a client network using device abstractions. In an embodiment, the device onboarding and integration services may emulate an edge device of a remote network of a client by a first device abstraction, where the edge device is an edge device of a first type (e.g., a vendor Y device). The device onboarding and integration services may also emulate the edge device as an edge device of a second type by a second device abstraction.
[0017] At any point in time, the device onboarding and integration services can update the state of the first device abstraction based on the updated state of the edge device (e.g., by receiving information indicating the state of the edge device at the client's network). In various embodiments, information can be received from the device abstraction of the edge device (e.g., located at the client's network or a third-party provider network). The service can update the state of the second device abstraction to the updated state based on the updated state of the first device abstraction. The service can then send the updated state of the second device abstraction to the application and / or device of the client's network from the second device abstraction. By emulating different types of devices using device abstractions, the device onboarding and integration services can allow specific applications at the client's network to interact with different types of devices using different APIs from different vendors, even if the application only uses one specific API. For example, an edge device management application can display heterogeneous edge devices of a client's network (e.g., images from different types of cameras) in the same view / pane, even if different edge devices interact / communicate using different APIs.
[0018] As discussed herein, in various embodiments, device onboarding and integration services can implement automatic onboarding, management, and control of different types of edge devices across a client network using device abstraction. This can significantly reduce the amount of time and computing resources used to onboard and manage / control different types of edge devices compared to traditional techniques (e.g., manual onboarding and / or using separate device management applications to manage different devices).
[0019] In various embodiments, the components shown in the figures may be implemented directly in computer hardware, as instructions that can be directly or indirectly executed by computer hardware (e.g., a microprocessor or a computer system), or using a combination of these techniques. For example, in one embodiment, the components of the figures may be implemented by a system including one or more computing nodes, each of which may be similar to Fig. 9 An embodiment of a computer system is shown in and described below.
[0020] This specification first describes a system for automatically onboarding different types of edge devices onto provider networks and client networks. This specification then describes a system for managing and controlling different types of edge devices across client networks using device abstraction. A variety of different methods and techniques are discussed for automatically onboarding different types of edge devices onto client and provider networks, and for managing and controlling across different types of edge devices, some of which are shown in the accompanying flowcharts. Finally, a description of an example computing system is provided on which the various components, modules, systems and / or techniques described herein can be implemented. Various examples are provided throughout the specification.
[0021] Figure 1 is a logical block diagram illustrating a system for automatic onboarding of heterogeneous edge devices onto a client network, according to some embodiments.
[0022] As shown, the provider network 102 includes device onboarding and integration services 104, which implement automatic onboarding of different types of edge devices onto the client network. In an example embodiment, the provider network 102 also includes any number of other services 106, such as computing services and / or storage services that can also be used by any of the clients (e.g., by users and / or edge devices that subscribe to the service). In an embodiment, any of the computing and / or storage functions described for the device onboarding and integration services 104 can be provided at least in part by one or more of the other services 106. For example, another IoT service can maintain a database of all registered edge devices for each client of the device onboarding and integration services 104.
[0023] In the depicted embodiment, the device onboarding and integration services 104 include a registered edge device 108 (e.g., an edge device registry) that stores data for any number of registered edge devices for each client of the service. The data may include identification data that uniquely identifies each edge device relative to one client or other edge devices of any client, as well as any other type of data describing the edge device. For example, the registry may store unique device IDs, client certificates, and / or client identifiers of clients for which the device is registered for any number of edge devices. In an embodiment, as described herein, a given edge device may be registered as a registered edge device for a client after the given edge device has been authenticated / authenticated as a client using a particular type / method of device proof.
[0024] As shown, the device onboard and integration service 104 also includes a pre-assigned edge device 110, which stores data for any number of edge devices for each client of the service, which has been pre-assigned to the client but has not yet been registered to the client. For example, when a client purchases an edge device using a product website of a supplier network, the service 104 can receive a unique identifier (e.g., a device ID and / or client certificate) and / or a client identifier (client ID) that uniquely identifies the client from the product website for the edge device. When the service receives this information, the information can be stored in the pre-assigned edge device (e.g., as a device ID / certificate and client ID) before the edge device is shipped to the client or connected to the client's network.
[0025] In one embodiment, when the service stores information of a client's edge device as a pre-assigned edge device (e.g., as a result of purchase / subscription), the provider network 102 can be considered the "digital owner" of the edge device and associate the edge device (e.g., edge device ID / digital certificate) with the client (e.g., by storing information of the edge device ID / certificate and associating that information with the client ID, such as in the pre-assigned edge device 110 and / or other data stores). This can be considered the process of "binding" the edge device to the client (e.g., by associating the client ID / client's account with the device's digital certificate). Therefore, in an embodiment, the edge device may not be used by any other client and / or provider network.
[0026] In some embodiments, the client (e.g., a user and / or organization that purchases an edge device for installation at a client network) may be considered the "actual owner" or physical owner of the edge device. In embodiments, the "device journey" may be considered the journey of a physical edge device from a manufacturer to one or more retailers / distributors to a client's network for installation, while the "credential journey" may be considered the journey of a device ID / credential from a specific endpoint (e.g., from a retailer's provider network / website) through the Internet and / or private network to the provider network's service 104.
[0027] In an embodiment, any number of clients of the device onboarding and integration service 104 may each have one or more remote client networks 112, and a given client network may include any number of edge devices. For example, a client's client network 112a may include any number of edge devices 114 of any number of different device types (e.g., devices manufactured / provided by different vendors that manufacture and / or sell devices, devices that interact / communicate with other devices using different application programming interfaces (APIs)). In an embodiment, a client of the device onboarding and integration service 104 may use the device onboarding and integration service 104 by communicating with the provider network 102 from the corresponding client's remote client network 112 (e.g., via a wide area network 116, such as the Internet).
[0028] As shown, a given edge device may include a management agent 118 (enabling communication between the edge device and device onboard and integrated services for managing the edge device) and / or any number of other software components 120 (e.g., operating systems, execution environments, components of software stacks, etc.) that may be downloaded from a service and installed / executed on the edge device. In embodiments, a client network may include a hub device 122, which may be any number of other edge devices that manage the client network and / or a particular type of edge device that communicates therewith.
[0029] The hub device 122 may include a hub device management agent 124 (enabling communication between the hub device and device onboard and integrated services for managing the hub device). As shown, the hub device may download and install an auto-connect agent 126 and a device discovery agent 127 from a provider network (e.g., deployed from a data store / deployer of a discovery and auto-connect agent 129). The device discovery agent may include software that enables edge devices to automatically discover and connect to a local network (e.g., by activating wireless beacon signals) using any suitable communication protocol (e.g., WiFi, LoRa). The auto-connect agent may include software that enables edge devices to automatically connect / authenticate to a provider network (e.g., through certification / verification).
[0030] The hub device may also instantiate (e.g., initiate execution / execution) any number of edge device abstractions 128. In an embodiment, a given device abstraction may emulate an edge device of a client's network (e.g., by updating the state of the device abstraction based on the current state of the edge device and communicating its state with other device abstractions and / or devices / applications). For example, one of the edge device abstractions 128 may emulate an edge device 114a of a client network 112a. In an embodiment, some or all of the device abstractions in the edge device 114 may be instantiated at a provider network and / or locally at a hub device 122. The device abstraction at the hub device may allow edge devices of different vendors to communicate with each other at a client network in the same / similar manner as described herein for a provider network. Even if the Internet connection to the provider network is temporarily lost, the local device abstraction 128 allows different types of edge devices to interact / communicate.
[0031] In an embodiment, any number of supplier networks 130 may provide a client with a way to order / purchase any number of different types of edge devices from different manufacturers and / or distributors / resellers (e.g., using product website 132) for shipment to the client's facility / location and installation on the client's network. As shown, any number of third-party networks 134 may each instantiate any number of edge device abstractions 136, where a given edge device abstraction 136 may emulate an edge device of a client's remote network. For example, edge device abstraction 136a may emulate edge device 114a of client network 112a.
[0032] In the depicted embodiment, the device onboard and integration services store any number of boot components 138 (device management agents, software components, etc.), which can be deployed by the deployer 140 to any number of edge devices of any client network, where the boot components are installed on the edge devices. The device manager 142 can communicate with the management agent 118 of each edge device to perform various device management actions as described herein (e.g., download software / software updates to the device, obtain information / status from the device). In an embodiment, the deployer 140 and / or the device manager 142 can obtain any number of boot components from the boot components 138 of the provider network and / or from any number of external providers 143 or third-party provider networks 134. This allows the edge device (whether a bare metal device or a device with some pre-installed software) to obtain any software component from any number of internal or external locations to complete the onboarding / configuration of the edge device. As described herein, the device verifier 144 can perform various actions for edge device certification and / or verification.
[0033] In some embodiments, as part of the edge device onboarding / booting process, the service 104 can send an instruction (e.g., a "recipe") to the device that specifies any number of external locations and / or internal locations at the provider network for the device to download software components from to install at the device. For example, the edge device can first download the software component from the internal location. After successfully installing the component, the edge device can then connect with the next location specified by the recipe to download the next software component (e.g., from the external provider 143). Any number of components can be obtained and / or installed in this manner until the edge device is fully configured and / or onboarded by the local network and / or service 104.
[0034] Device onboarding and integration services may instantiate any number of device abstractions 146. As described herein, a given device abstraction may emulate an edge device of a client network (e.g., edge device 114 or hub device 122) based on the state of the edge device of the client network. Emulating a given edge device may include emulating the behavior of the software and / or hardware of the edge device so as to allow the device abstraction to interact / communicate with other device abstractions and / or other edge devices / applications as if the device abstraction were a physical edge device. In an embodiment, any number of edge device abstractions 148 may emulate a corresponding edge device 114 based on the state of the edge device 114 (e.g., the most recent state parameters obtained from the edge device, such as various values generated, collected, and / or stored at the edge device). For example, edge device abstraction 146a may emulate edge device 114a based on the state of edge device 114a.
[0035] The device onboarding and integration services may also include a device type onboarding map 152, which includes any onboarding information that can be used to allow the service to automatically onboard different types of edge devices. As shown, the map 152 may include any number of entries 154 for different types of devices, each entry indicating the type of certification used to verify the edge device, the specific management agent (or type of agent) to be used and / or configured for the edge device, and the device configuration (e.g., a recipe for software components / locations to be installed on the edge device and / or any services to which the device will subscribe). In an embodiment, as part of the onboarding process, the device may subscribe to any number of device services provided by the provider network and / or any other third-party provider network (e.g., a service may be specified as part of a recipe). As an example, the device may be an elevator sensor device that subscribes to a ticket generation service provided by the provider network 102. When the sensor device detects a fault in the elevator, a request to generate a maintenance ticket for the elevator may be sent to the ticket generation service.
[0036] In an embodiment, after the edge device is turned on (e.g., powered on) at the client's site, it can discover the client's network (e.g., by detecting a beacon signal from a hub device / device discovery agent and sending a request to be added to the local network). The edge device can also establish a connection with a provider network. For example, an automatic connection agent can provide a network address / URL to the edge device, to which the edge device sends a connection request.
[0037] After the device onboarding and integration service establishes a connection with an edge device of a client's remote network (e.g., after the edge device uses a device discovery agent and / or an autoconnect agent to request a connection), the service can receive data from the edge device including an identifier of the edge device. The identifier of the edge device may have been previously associated with the client (e.g., based on ordering of the edge device on a product website). The service can determine the type of edge device (e.g., the vendor that manufactured the device, the API and / or communication protocol used by the device) based on the identifier and / or other data from the edge device.
[0038] Based on the type of edge device (e.g., based on the device ID), the service can determine / select a type of device attestation from different types of device attestations that can be used to authenticate different types of edge devices (e.g., different types of attestation flows / sequences stored by the service for authenticating devices). The service can then perform the selected type of device attestation to authenticate the edge device. In response to the authentication of the edge device, the service can establish a secure connection (e.g., a TLS connection) with the edge device and register the edge device as a registered edge device of the client.
[0039] In various embodiments, depending on what type of device the service identifies the edge device as (e.g., what category the device belongs to), the service can determine different types of proofs to be performed (e.g., different flows for verifying / authenticating the device). In one embodiment, devices using different communication protocols (e.g., BLE vs. Zigbee) are classified as different types of devices and / or devices managed by a third-party network are classified as different types from devices not managed by a third-party network. In an embodiment, devices may be classified into different types / categories based on specific applications and / or specific communication protocols supported by the device. In an embodiment, devices targeting a specific type of environment (e.g., smart home) may be classified as a first type of device. Devices supporting standards and / or protocols such as LWM2M, LoRa, NB-IoT, etc. may be classified as a second type of device. Devices managed by a third-party network may be classified as a third type. Larger devices such as residential gateways and other general customer premises devices using Fido Device Onboard (FDO) may be classified as a fourth type.
[0040] The service may send a device management agent to the edge device. The device management agent may be configured to enable communication between the edge device and the device onboard and integrated services to manage the edge device (eg, after the agent is installed / executed on the edge device).
[0041] Some types of edge devices may be managed, or at least partially managed, by a remote third-party provider network (e.g., a provider network owned or managed by a vendor that manufactured the edge device). In an embodiment, the service may determine the third-party provider network assigned to manage the edge device based on the type of edge device. As part of the onboarding process, the service may send an indication of the third-party provider network (e.g., a website address / Uniform Resource Locator (URL)) to the edge device.
[0042] In some embodiments, the device onboarding and integration services can instantiate / execute any number of device abstractions for any edge device in the edge device based on the client network. For example, the service can instantiate a first device abstraction for an edge device (e.g., device abstraction 146a for edge device 114a), where the first device abstraction emulates the edge device, and where the state of the first device abstraction is based on the state of the edge device (e.g., a change in the state of the edge device produces the same / similar change in the state of the device abstraction). The service can instantiate a second device abstraction (e.g., device abstraction 146n) as an edge device of a different type than the edge device (e.g., using a different API), where the state of the second device abstraction is based on the state of the first device abstraction. In an embodiment, any number of additional device abstractions are abstracted to any number of levels (e.g., a third device abstraction based on the state of the second device abstraction, a fourth device abstraction based on the state of the third device abstraction, etc.). Each level can include device abstractions instantiated as different types of edge devices (e.g., using different APIs), allowing edge devices to communicate with any other type of edge device.
[0043] In an embodiment, a service may instantiate a first device abstraction for an edge device, wherein the first device abstraction emulates an edge device, and wherein a state of the first device abstraction is based on a state of a device abstraction of another provider network (e.g., a third-party network / device management system). As discussed below, the state of the first device abstraction may receive messages indicating updated states of other device abstractions from other device abstractions of other provider networks through an integration adapter 148. The integration adapter may convert the message into a message compatible with an API used by the first device abstraction, and may update the state of the first device abstraction based on the converted message.
[0044] Different types of devices may come from different device vendors (e.g., manufactured by different vendors) and / or may interact with other edge devices / applications using different APIs. In one embodiment, a service may instantiate a first device abstraction for an edge device of a remote network of a client, wherein the first device abstraction is configured to emulate an edge device, and wherein the edge device is an edge device of a first type from a first device vendor that interacts with other devices using a first API. The service may also instantiate a second device abstraction associated with the first device abstraction (e.g., whose state is based on the state of the first device abstraction), wherein the second device abstraction is configured to emulate the edge device as an edge device of a second type from a second device vendor that interacts with other devices using a second API. The service may update the state of the first device abstraction based on the state of the edge device, and in response, update the state of the second device abstraction to an updated state based on the update of the state of the first device abstraction. The service may then cause the second device abstraction to provide the updated state of the second device abstraction to an endpoint (application / device) of a remote network endpoint of the client according to a second API. This may allow an application at the client network to interact / communicate with the edge device as if the application were an edge device of the second type (eg, manufactured by a second device vendor), even though the edge device was manufactured by the first device vendor.
[0045] In an embodiment, the update of the state of the first device abstraction is based on the update of another device abstraction at another provider network (e.g., another device management system owned by a vendor that manufactures the edge device). For example, the service may receive a message indicating the state of the edge device from another device abstraction of the edge device instantiated at another provider network through an integration adapter (the message may indicate the state of the other device abstraction, which is an indication of the state of the edge device itself), and then update the state of the first device abstraction based on the message received from the other provider network.
[0046] In some embodiments, the update of the state of the first device abstraction is based on the update of another device abstraction that has been instantiated at the hub device of the client network. For example, the service may receive a message indicating the state of the edge device from another device abstraction of the edge device instantiated at the hub device of the client's remote network (the message may indicate the state of the other device abstraction, which is an indication of the state of the edge device itself), and then update the state of the first device abstraction based on the message received from the other device abstraction.
[0047] In an embodiment, the updating of the state of the first device abstraction is based on the updating of the device abstraction of the hub device including the first device abstraction ( Figure 2). For example, the service may receive information indicating a state of the hub device from a hub device of a remote network of a client through an integration adapter (the state of the hub device may include the state of an edge device of the remote network and any number of edge devices), and then update the state of the device abstraction of the hub device based on the information indicating the state of the hub device (e.g., based on the state of the edge device included in the state of the hub device).
[0048] In one embodiment, the update of the state of the first device abstraction is based on the update of the edge device itself. For example, the service can receive a message indicating the state of the edge device from the edge device at the client's remote network (e.g., through an integrated adapter), and then update the state of the first device abstraction based on the message received from the edge device.
[0049] In an embodiment, any number of different device abstractions can be instantiated at the device onboard and integration service based on any number of edge devices at a client network, which can include any number of different types of edge devices. For example, using the techniques described herein (using device abstractions), a client network can include 10 different types of edge devices, each edge device using a different API for communication, but a management application at the client network can communicate with all 10 devices using a specific API to display the status of each device in the same view / pane. In an embodiment, any combination of the above techniques using device abstractions can be implemented. For example, one or more device abstractions can be updated based on another device abstraction at another third-party provider network, one or more device abstractions can be updated based on another device abstraction at a hub device, one or more device abstractions can be updated based on a device abstraction of a hub device, and / or one or more device abstractions can be updated based on communication with the edge device itself.
[0050] In various embodiments, any of the components / functionality of the device onboarding and integration service 104 may be performed by a third-party provider network (e.g., another device onboarding and integration service) to onboard an edge device. For example, the authenticator 144, the discovery and auto-connect agent 129, and / or the deployer 140 may be implemented by a third-party provider network. By performing the techniques described herein, any number of different types of edge devices may be onboarded using different techniques specific to the device type (e.g., different types of attestations, management agents, software components, etc.).
[0051] Thus, embodiments may provide a unified human-readable interface (e.g., a unified view / pane that allows management of heterogeneous devices) and a unified machine-readable interface (e.g., the ability for applications to communicate with heterogeneous edge devices) by using device abstraction. In embodiments, in response to onboarding and authentication of an edge device, a bidirectional chain of trust may be established between the edge device, the client network, and the provider network (e.g., along a path of any number of device abstraction levels).
[0052] Note that in some embodiments, the user may need to give permission to use any of the functionality described herein. For example, the user may give permission to the third-party network for the device onboard and integration services / provider network 102 to access / obtain data of edge devices managed by the third-party network (e.g., so that the device onboard and integration services obtain messages indicating the current / updated status of edge devices from the device abstraction at the third-party network).
[0053] Figure 2 is a logical block diagram illustrating a system for managing and controlling heterogeneous edge devices across client networks using device abstraction according to some embodiments. Although various examples described throughout may be used for home networks, in various embodiments, any type of network may be used in any environment (e.g., industrial applications such as manufacturing plants or assembly shops). Thus, the client network may be part of a user's home network, or may be part of a business or other organization in any type of business-related environment.
[0054] In an embodiment, the device onboarding and integration services 202 may perform Figure 1 Some or all of the functionality described for service 102. In some embodiments, Figure 2 Any network or component of a network or component may be connected to Figure 1 The networks or components described may be the same or similar, or may be example embodiments of those networks or components. Figure 1 As shown, any number of clients of the device onboard and integrated services 202 may each have one or more client networks 112, and a given client network may include any number of edge devices 114. Figure 1 As shown, the client network 112 includes a hub device 122 that includes any number of edge device abstractions 128. For example, the edge device abstractions 128a-128n can be device abstractions of edge devices 114a-114n. As shown, any number of third-party provider networks can each include the client network 112 and any number of edge device abstractions 136 of other client networks.
[0055] As shown, the device onboarding and integration services 202 may include a hub device abstraction 206 that includes an edge device abstraction 204 corresponding to each edge device abstraction in the edge device abstraction 128 at the hub device. For example, the edge device abstractions 204a-204n may correspond to the edge device abstractions 128a-128n (e.g., the state of the edge device abstraction 204 is based on the state of the corresponding edge device abstraction 128, which in turn is based on the corresponding state of each edge device 114).
[0056] In an embodiment, a hub device abstraction may interact / communicate with other devices as a device of a specific type (e.g., type Z) that may provide status data of its "child" edge device abstractions (e.g., 2024a-204n), even if some or all of its "child" edge device abstractions are not of type Z. For example, a hub device abstraction may interact as if it were a single device with three different sensor outputs (e.g., temperature, pressure, humidity), even though the temperature, pressure, and humidity are obtained from different edge device abstractions, and the temperature, pressure, and humidity are each provided by a different edge device at the client network.
[0057] In an embodiment, a service may instantiate any number of edge abstractions 208 based on corresponding edge abstractions 204. For example, the state of edge abstraction 208a may be based on the state of edge abstraction 204a, which may be based on the state of edge abstraction 128a, which may be based on the state of edge 114a.
[0058] In the depicted example, edge device 114a is a type X edge device, and edge device 114n is a type X edge device (e.g., it uses a different type of API and / or is from a different vendor / manufacturer). Edge device abstraction 208a can emulate edge device 114a as a type Z edge device, and edge device abstraction 208n can emulate edge device 114n as a type Z edge device. This can allow a type Z display application 210 (e.g., a smart application that interacts / communicates using a different API than type X or Y devices) at the client's network 112 to display the state of edge devices 114a and 114n in the same unified view (e.g., user interface) as the state of other edge devices of type Z, even though type Y and X devices are not compatible with type Z devices (e.g., use different APIs). In embodiments, the use of device abstractions can also allow a user of the display device to control edge devices 114a and 114n (e.g., commands at the user interface sent back by the device abstraction).
[0059] In some embodiments, the information flow / state changes using device abstractions can be bidirectional. For example, if a user or application causes the state of edge device abstraction 208a to change, the state of edge device abstraction 204a can be updated to match the state of edge device abstraction 208a, and then the state of edge device abstraction 128a can be updated to match the state of edge device abstraction 204a, and then the state of edge device 114a can be updated to match the state of edge device abstraction 128a. This can allow changes to the device abstraction (e.g., based on a command or any other trigger) to propagate to the edge device itself. In embodiments, this can also occur in device abstractions at third-party provider networks. For example, a state change of edge device abstraction 208n can be propagated to edge device abstraction 136n (e.g., through integration adapter 148), which can then be propagated to edge device 114n.
[0060] Figure 3 Onboard and universal control of heterogeneous edge devices along a cloud continuum according to some embodiments is demonstrated.
[0061] In the depicted example, device onboarding and integration services 104 can implement a "layer" of edge device onboarding 302 and common control 304 that automatically manages onboarding and communication between different types of edge devices using the various techniques described herein. As shown, different edge devices can be at least partially managed by different device management systems 306 (e.g., different third-party provider networks). For example, device management system 306 can be Figure 1 3rd party provider network 134. By implementing automatic onboarding and common control of various different device types, device onboarding and integration services 104 enable different edge devices to operate seamlessly and efficiently with each other. As shown, any number of different services can be implemented based on any number of different types of edge devices, thereby enabling "smart" X implementations across any environment (e.g., home / personal, manufacturing / industrial IoT, health applications).
[0062] Figure 4 is a logical block diagram illustrating a system for management and control of heterogeneous edge devices across a client network using device abstraction, according to some embodiments.
[0063] As shown, a remote client network 402 (e.g., at a user's home) may include various devices from various edge device vendors (e.g., smart home vendors (SHVs)). In an example, the network may include a gateway connected to a TV set-top box running a smart TV application. For each SHV that provides device services over the Internet, there may be a different set of APIs that allow communication with different edge devices installed at the client network.
[0064] The cloud 404 may include different third-party networks that manage different types of devices (e.g., device services 406), and the devices may communicate with shared services 408 (e.g., onboard and integrated services 104 and other services 106) using integrated components (e.g., integrated adapters 148). The home IoT hub 412 (e.g., hub device 122) may include a local rule engine and local device management (e.g., management agent 124). In an embodiment, a user may use a local rule engine to create and implement rules for managing / controlling the operation of any number of different edge devices (e.g., devices from different vendors / using different APIs). For example, a user may create a rule to turn off all smart lights in the house at 10 p.m. The rule may enable local device management to turn off all lights, even if the lights are from different vendors and / or use different APIs. As shown, different types of devices may communicate using any number of different protocols (e.g., Zigbee, Zwave, BLE, WiFi). In addition, some devices may be managed locally and / or managed using onboard and integrated services (e.g., without a third-party network management device).
[0065] Figure 5 is a logical block diagram illustrating a system for automated onboarding, management, and control of heterogeneous edge devices across a client network using device abstraction, according to some embodiments.
[0066] In the example shown, the client network may include different types of edge devices using different communication protocols (e.g., Zigbee / BLE / WiFi). When a user purchases an edge device, the provider network may receive the device ID (e.g., using the service 502 of a network such as a vendor network 504 or other network) and may associate the device ID with the client (e.g., with an existing account of the client at the provider network).
[0067] Provider network 506 (e.g., provider network 102) can implement edge device onboarding and general control, as well as various other IoT-related services (marketplace, application development, edge device management, AI services, data lake, etc.). Client network 508 can communicate with third-party network 510, provider network 506, and vendor network 504 in various ways to implement automatic onboarding of heterogeneous devices and management / control across heterogeneous devices using device abstraction, as described herein.
[0068] Figure 6 is a logical block diagram illustrating a system for automated onboarding, management, and control of heterogeneous edge devices across a client network using device abstraction, according to some embodiments.
[0069] In the example shown, the client network may include different types of edge devices using different communication protocols (e.g., Zigbee / BLE / WiFi). When a user purchases an edge device, the provider network may receive the device ID (e.g., using the service 602 of a network such as a vendor network 604 or other network) and may associate the device ID with the client (e.g., with an existing account of the client at the provider network).
[0070] Provider network 606 (e.g., provider network 102) can implement edge device onboarding and general control, as well as various other IoT-related services (marketplace, application development, edge device management, AI services, data lake, etc.). Client network 608 can communicate with third-party network 610, provider network 606, and vendor network 604 in various ways to enable automatic onboarding of heterogeneous devices and management / control across heterogeneous devices using device abstraction, as described herein.
[0071] As depicted, the "edge device onboarding" function of the provider network can implement various services (e.g., aggregation services, certificate management, owner services) that can perform any of the functions described herein in order to onboard edge devices. The "generic control" function of the provider network can implement various services (e.g., API gateway, protocol conversion / integration adapter, device twin / device abstraction) that can perform any of the functions described herein in order to onboard edge devices.
[0072] Figure 7 is a high-level flow chart illustrating various methods and techniques for implementing automatic onboarding of heterogeneous edge devices onto client networks according to some embodiments. Figure 7-8 Any functionality described in any part of the Figure 1-6 and / or any of the components of 9 are executed.
[0073] These technologies and Figure 8 The techniques discussed above can be used as described above with respect to Figure 1-6 The components or systems described herein can be implemented in conjunction with other types of components or systems, and thus the discussion below is not intended to limit other types of systems that can implement the described techniques. For example, any of the techniques can be implemented by device onboard and integrated services of a provider network and / or local services / applications of a client network.
[0074] At block 702, a client purchases an edge device at a product website. At block 704, the device onboarding and integration service associates a device ID of the edge device with the client (e.g., at least a portion of the device's Universal Product Code (UPC), the device's Media Access Control Address (MAC), or any other identifier that uniquely identifies the edge device relative to other edge devices). The service may also configure a device management agent and obtain a client certificate for the device.
[0075] At block 706, after establishing a connection with the edge device, the service receives a device ID from the edge device of the client's remote network. At block 708, the service determines a type of device certification (from among multiple types of device certifications available) based on the type of edge device (e.g., based on the device ID) to verify the identity of the edge device.
[0076] At block 710, the service performs the selected type of device attestation for the edge device. At block 712, if the service cannot verify the edge device based on the device attestation, then at block 714, the service sends an indication to the endpoint that the edge device verification failed. If the service verifies the identity of the edge device, then at block 716, the service establishes a secure connection with the edge device. At block 718, the service registers the edge device as a registered edge device of the client. At block 720, the service sends the proxy and client certificates to the edge device to enable additional communications between the edge device and the service (e.g., after installation at the edge device).
[0077] At block 722, the service sends an indication of the different locations of the device download components and the location of the services to which the device will subscribe, so as to allow the edge device to boot itself. At block 724, the edge device boots itself and is onboarded to the service.
[0078] Figure 8 is a high-level flow chart illustrating various methods and techniques for implementing management and control across heterogeneous edge devices of a client network using device abstraction in accordance with some embodiments.
[0079] At block 802, the device onboarding and integration service instantiates a first device abstraction for an edge device of a remote client network; the first device abstraction emulates the edge device (the edge device is an edge device of a first type from a first device vendor). At block 804, the service instantiates a second device abstraction associated with the first device abstraction; the second device abstraction emulates the edge device as an edge device of a second type from a second vendor.
[0080] At block 806, the service updates the state of the first device abstraction based on the state of the edge device of the remote client network. At block 808, the service updates the state of the second device abstraction to an updated state based on the update of the state of the first device abstraction. At block 810, the service causes the second device abstraction to provide the updated state of the second device abstraction to an application of the remote client network.
[0081] In various embodiments, the methods described herein may be implemented by any combination of hardware and software. For example, in one embodiment, the methods may be implemented by a computer system (e.g., Fig. 9 The invention is implemented in a computer system comprising one or more processors that execute program instructions stored on a computer-readable storage medium coupled to the processor.
[0082] Program instructions may implement the functionality described herein (e.g., functionality of device onboard and integrated services, other services, edge devices, and any other components / devices implementing the techniques described herein). The various methods illustrated in the figures and described herein represent example embodiments of the methods. The order of any method may be changed, and various elements may be added, reordered, combined, omitted, modified, etc.
[0083] As described herein, embodiments implementing automatic onboarding of different types of edge devices onto a client network, and managing and controlling different types of edge devices across a client network using device abstraction may be executed on one or more computer systems that may interact with various other systems or devices. One such computer system may be Fig. 9 In various embodiments, computer system 900 may be any of a variety of types of devices, including, but not limited to, a personal computer system, a desktop computer, a laptop computer, a notebook or netbook computer, a mainframe computer system, a handheld computer, a workstation, a network computer, a camera, a set-top box, a mobile device, a consumer device, a video game console, a handheld electronic game device, an application server, a storage device, a peripheral device such as a switch, a modem, a router, or generally any type of computing node, computing device, computing device, or electronic device.
[0084] In the illustrated embodiment, the computer system 900 includes one or more processors 910 coupled to a system memory 920 via an input / output (I / O) interface 930. The computer system 900 further includes a network interface 940 coupled to the I / O interface 930, and one or more input / output devices 950, such as a cursor control device 960, a keyboard 970, and a display 980. In one embodiment, the display may include a standard computer monitor and / or other display systems, techniques, or devices. In some embodiments, it is contemplated that the embodiments may be implemented using a single instance of the computer system 900, while in other embodiments, a plurality of such systems or a plurality of nodes constituting the computer system 900 may host different portions or instances of the various embodiments. For example, in one embodiment, some elements may be implemented by one or more nodes of the computer system 900 that are different from those nodes that implement other elements.
[0085] In various embodiments, the computer system 900 may be a uniprocessor system including one processor 910, or a multiprocessor system including a number of processors 910 (e.g., two, four, eight, or another suitable number). In one embodiment, the processor 910 may be any suitable processor capable of executing instructions. For example, in various embodiments, the processor 910 may be a general-purpose or embedded processor that implements any of a variety of instruction set architectures (ISAs), such as an x86, PowerPC, SPARC, or MIPS ISA, or any other suitable ISA. In a multiprocessor system, each of the processors 910 may typically, but not necessarily, implement the same ISA.
[0086] In some embodiments, at least one processor 910 may be a graphics processing unit. In one embodiment, a graphics processing unit or GPU may be considered as a dedicated graphics rendering device for a personal computer, workstation, game console or other computing or electronic device. Modern GPUs may be very effective in manipulating and displaying computer graphics, and for a series of complex graphics algorithms, their highly parallel structure may make them more effective than typical CPUs. For example, a graphics processor may implement the graphics primitive operations in a much faster manner than directly drawing to the screen with a host central processing unit (CPU) so that multiple graphics primitive operations are performed. In various embodiments, graphics rendering may be implemented at least in part by program instructions executed on one of such GPUs or executed in parallel on two or more of such GPUs. In one embodiment, a GPU may implement one or more application programmer interfaces (APIs) that allow programmers to call the functions of a GPU.
[0087] In one embodiment, the system memory 920 can store program instructions 925 and / or data accessible to the processor 910. In various embodiments, the system memory 920 can be implemented using any suitable memory technology, such as static random access memory (SRAM), synchronous dynamic RAM (SDRAM), non-volatile / flash type memory, or any other type of memory. In the illustrated embodiment, program instructions and data that implement the desired functions such as the functions described above (e.g., device onboard and integrated services, other services, edge devices, and any other components / devices, etc.) are shown as being stored in the system memory 920 as program instructions 925 and data storage 935, respectively. In other embodiments, program instructions and / or data may be received, sent, or stored on different types of computer accessible media or on similar media separate from the system memory 920 or the computer system 900.
[0088] The computer accessible medium may include non-transitory storage media or memory media such as magnetic or optical media, for example, a disk or CD / DVD-ROM coupled to the computer system 900 via the I / O interface 930. In one embodiment, program instructions and data stored via the computer accessible medium may be transmitted via a transmission medium or signal such as an electrical signal, an electromagnetic signal, or a digital signal, which may be conveyed via a communication medium such as a network and / or a wireless link, as may be implemented via the network interface 940.
[0089] In one embodiment, the I / O interface 930 may coordinate I / O traffic between the processor 910, the system memory 920, and any peripheral device in the device including the network interface 940 or other peripheral interfaces such as the input / output device 950. In some embodiments, the I / O interface 930 may perform any necessary protocol, timing, or other data transformations to convert data signals from one component (e.g., the system memory 920) into a format suitable for use by another component (e.g., the processor 910). In some embodiments, for example, the I / O interface 930 may include support for devices attached through various types of peripheral buses such as a variant of the Peripheral Component Interconnect (PCI) bus standard or the Universal Serial Bus (USB) standard. In some embodiments, for example, the functionality of the I / O interface 930 may be split into two or more separate components, such as a north bridge and a south bridge. In addition, in some embodiments, some or all of the functionality of the I / O interface 930, such as the interface to the system memory 920, may be directly incorporated into the processor 910.
[0090] In one embodiment, the network interface 940 may allow data to be exchanged between the computer system 900 and other devices attached to the network, such as other computer systems, or between nodes of the computer system 900. In various embodiments, the network interface 940 may support communications over a wired or wireless general purpose data network, such as any suitable type of Ethernet; over a telecommunications / telephone network, such as an analog voice network or a digital fiber optic communications network; over a storage area network, such as a Fibre Channel SAN, or over any other suitable type of network and / or protocol.
[0091] In one embodiment, input / output device 950 may include, in some embodiments, one or more display terminals, keyboards, keypads, touch pads, scanning devices, voice or optical recognition devices, or any other device suitable for inputting or retrieving data by one or more computer systems 900. In one embodiment, multiple input / output devices 950 may be present in computer system 900 or may be distributed across different nodes of computer system 900. In some embodiments, similar input / output devices may be separate from computer system 900 and may interact with one or more nodes of computer system 900 via a wired or wireless connection, such as through network interface 940.
[0092] like Fig. 9 As shown, in one embodiment, memory 920 may include program instructions 925 that implement various embodiments of the system described herein, and data storage 935 containing various data accessible by program instructions 925. In one embodiment, program instructions 925 may include software elements of embodiments as described herein and illustrated in the accompanying drawings. Data storage 935 may include data (e.g., configuration data, usage restrictions, etc.) that may be used in embodiments. In other embodiments, other or different software elements and data may be included.
[0093] Those skilled in the art will appreciate that computer system 900 is illustrative only and is not intended to limit the scope of the embodiments as described herein. Specifically, computer systems and devices may include any combination of hardware or software capable of performing the indicated functions, including computers, personal computer systems, desktop computers, laptop computers, notebook or netbook computers, mainframe computer systems, handheld computers, workstations, network computers, cameras, set-top boxes, mobile devices, network devices, Internet appliances, PDAs, wireless phones, pagers, consumer devices, video game consoles, handheld electronic game devices, application servers, storage devices, peripheral devices such as switches, modems, routers, or generally any type of computing or electronic device.
[0094] The computer system 900 may also be connected to other devices not shown, or may alternatively be run as a standalone system. In addition, in some embodiments, the functionality provided by the components shown may be combined in fewer components or distributed in additional components. Similarly, in some embodiments, the functionality of some of the components shown may not be provided and / or other additional functionality may be used.
[0095] Those skilled in the art will also appreciate that, although various items are shown as being stored in memory or on a storage device when in use, these items or portions thereof may be transferred between memory and other storage devices for purposes of memory management and data integrity. Alternatively, in other embodiments, some or all of the software components may be executed in a memory on another device and communicate with the computer system shown via inter-computer communication. Some or all of the system components or data structures may also be stored (e.g., as instructions or structured data) on a computer-accessible medium or portable article to be read by an appropriate driver, various examples of which are described above.
[0096] In some embodiments, instructions stored on a computer-readable medium separate from the computer system 900 may be transmitted to the computer system 900 via a transmission medium or signal, such as an electrical signal, an electromagnetic signal, or a digital signal conveyed by a communication medium such as a network and / or a wireless link. The computer-readable storage medium may be non-transitory. Various embodiments may further include receiving, sending, or storing instructions and / or data implemented according to the foregoing description on a computer-accessible medium. Therefore, the present invention may be practiced with other computer system configurations.
[0097] Various embodiments may further include receiving, sending or storing instructions and / or data implemented according to the foregoing description on a computer-accessible medium. In general, a computer-accessible medium may include a storage medium or memory medium such as a magnetic or optical medium, such as a disk or DVD / CD-ROM, a non-volatile medium such as RAM (e.g., SDRAM, DDR, RDRAM, SRAM, etc.), ROM, etc., and a transmission medium or signal such as an electrical signal, an electromagnetic signal or a digital signal conveyed by a communication medium such as a network and / or a wireless link.
[0098] The various methods shown in the accompanying drawings and described herein represent example embodiments of the methods. The methods may be implemented in software, hardware, or a combination thereof. The order of the methods may be changed, and various elements may be added, reordered, combined, omitted, modified, etc.
[0099] It will be apparent to those skilled in the art having the benefit of this disclosure that various modifications and changes may occur. The invention is intended to embrace all such modifications and changes, and, accordingly, the above description is to be regarded as illustrative rather than restrictive.
[0100] Embodiments of the present disclosure may be described in light of the following terms:
[0101] Clause 1. A system comprising:
[0102] One or more processors and one or more memories, wherein the one or more memories have stored thereon instructions that, when executed by the one or more processors, cause the one or more processors to implement device onboarding and integration services for a plurality of clients of a provider network, wherein the device onboarding and integration services are configured to, for a given client:
[0103] instantiating a first device abstraction of an edge device of a remote network of the client, wherein the first device abstraction is configured to emulate the edge device, and wherein the edge device is an edge device of a first type from a first device vendor that interacts with other devices using a first application programming interface (API);
[0104] instantiating a second device abstraction associated with the first device abstraction, wherein the second device abstraction is configured to emulate the edge device as a second type of edge device from a second device vendor, the second type of edge device interacting with other devices using a second API;
[0105] updating a state of the first device abstraction based on a state of the edge device;
[0106] In response to the updating of the state of the first device abstraction, updating the state of the second device abstraction to an updated state based on the updating of the state of the first device abstraction; and
[0107] The second device abstraction is caused to provide the updated state of the second device abstraction to an application of the remote network of the client according to the second API.
[0108] Clause 2. The system of clause 1, wherein to update the state of the first device abstraction, the device onboard and integration services are configured to:
[0109] receiving, by an integration adapter, a message indicating the state of the edge device from another device abstraction of the edge device instantiated at another provider network; and
[0110] The state of the first device abstraction is updated based on the message received from the another provider network.
[0111] Clause 3. The system of any one of clauses 1 to 2, wherein to update the state of the first device abstraction, the device onboard and integration services are configured to:
[0112] receiving the message indicating the status of the edge device from another device abstraction of the edge device instantiated at a hub device of the remote network of the client; and
[0113] The state of the first device abstraction is updated based on the message received from the remote network of the client.
[0114] Clause 4. The system of clause 3, wherein a device abstraction of the hub device of the remote network of the client is instantiated at the provider network, and wherein to update the state of the first device abstraction, the device onboarding and integration services are configured to:
[0115] receiving, from the hub device of the remote network of the client via an integrated adapter, information indicating a status of the hub device; and
[0116] The state of the device abstraction of the hub device is updated based on the information indicative of the state of the hub device.
[0117] Clause 5. The system of any one of clauses 1 to 4, wherein the device onboard and integrated services are configured to:
[0118] instantiating a third device abstraction of an additional edge device of the remote network of the client, wherein the third device abstraction is configured to emulate the additional edge device, and wherein the additional edge device is an edge device of a third type from a third device vendor, the edge device of the third type interacting with other devices using a third API different from the first API and the second API;
[0119] receiving, by the integration adapter, a message indicating a status of the further edge device from another device abstraction of the further edge device instantiated at another provider network; and
[0120] A state of the third device abstraction is updated based on the message received from the another provider network.
[0121] Clause 6. A method comprising:
[0122] Executed by one or more computing devices of the provider network:
[0123] abstracting an edge device of a remote network of the emulated client by a first device, wherein the edge device is an edge device of a first type;
[0124] emulating the edge device as a second type of edge device by a second device abstraction;
[0125] updating a state of the first device abstraction based on a state of the edge device;
[0126] Based on the updating of the state of the first device abstraction, updating the state of the second device abstraction to an updated state; and
[0127] The updated status of the second device abstraction is sent from the second device abstraction to an application of the remote network of the client.
[0128] Clause 7. The method of clause 6, wherein updating the state of the first device abstraction comprises:
[0129] receiving, by an integration adapter, a message indicating the state of the edge device from another device abstraction of the edge device instantiated at another provider network; and
[0130] The state of the first device abstraction is updated based on the message received from the another provider network.
[0131] Clause 8. The method of any one of clauses 6 to 7, wherein updating the state of the first device abstraction comprises:
[0132] receiving, from another device abstraction of the edge device at the remote network of the client, a message indicating the state of the edge device; and
[0133] The state of the first device abstraction is updated based on the message received from the remote network of the client.
[0134] Clause 9. The method of any one of clauses 6 to 8, wherein updating the state of the first device abstraction comprises:
[0135] receiving, through an integrated adapter, a message from the edge device at the remote network of the client indicating the status of the edge device; and
[0136] The state of the first device abstraction is updated based on the message received from the edge device.
[0137] Clause 10. The method according to any one of clauses 6 to 9, further comprising:
[0138] A hub device of the remote network of the client is emulated by a hub device abstraction, wherein the hub device abstraction includes the first device abstraction.
[0139] Clause 11. A method according to any one of clauses 6 to 10, wherein the first type of edge device interacts with other edge devices using a first API, and wherein the second type of edge device interacts and communicates with other edge devices using a second API different from the first API or communication protocol.
[0140] Clause 12. The method according to any one of clauses 6 to 11, further comprising:
[0141] emulating the edge device as a third type of edge device by a third device abstraction;
[0142] updating a state of the first device abstraction based on a state of the edge device;
[0143] updating a state of the third device abstraction based on the updating of the state of the second device abstraction; and
[0144] The updated status of the third device abstraction is sent from the third device abstraction to an endpoint.
[0145] Clause 13. The method according to any one of clauses 6 to 12, further comprising:
[0146] abstracting another edge device of the remote network emulating the client by a third device, wherein the another edge device is an edge device of a third type;
[0147] receiving, by the integration adapter, from another device abstraction of the further edge device at another provider network, a message indicating a status of the further edge device; and
[0148] A state of a third device abstraction is updated based on the message received from the another provider network.
[0149] Clause 14. The method according to clause 13, further comprising:
[0150] emulating the other edge device as the second type of edge device by a fourth device abstraction;
[0151] updating a state of the fourth device abstraction based on the updated state of the third device abstraction; and
[0152] An updated status of the fourth device abstraction is sent from the fourth device abstraction to the application.
[0153] Clause 15. One or more non-transitory computer-accessible storage media storing program instructions that, when executed on or across one or more processors of a provider network, cause the one or more processors to:
[0154] abstracting an edge device of a remote network of the emulated client by a first device, wherein the edge device is an edge device of a first type;
[0155] emulating the edge device as a second type of edge device by a second device abstraction;
[0156] updating a state of the first device abstraction based on a state of the edge device;
[0157] Based on the updating of the state of the first device abstraction, updating the state of the second device abstraction to an updated state; and
[0158] The updated status of the second device abstraction is sent from the second device abstraction to an application of the remote network of the client.
[0159] Clause 16. The one or more storage media of clause 15, wherein to update the state of the first device abstraction, the program instructions, when executed on or across the one or more processors, further cause the one or more processors to:
[0160] receiving, by an integration adapter, a message indicating the state of the edge device from another device abstraction of the edge device instantiated at another provider network; and
[0161] The state of the first device abstraction is updated based on the message received from the another provider network.
[0162] Clause 17. One or more storage media as described in any of clauses 15 to 16, wherein to update the state of the first device abstraction, the program instructions, when executed on or across the one or more processors, further cause the one or more processors to:
[0163] receiving, from another device abstraction of the edge device at the remote network of the client, a message indicating the state of the edge device; and
[0164] The state of the first device abstraction is updated based on the message received from the remote network of the client.
[0165] Clause 18. One or more storage media according to any one of clauses 15 to 17, wherein to update the state of the first device abstraction e, the program instructions when executed on or across the one or more processors further cause the one or more processors to:
[0166] receiving, through an integrated adapter, a message from the edge device at the remote network of the client indicating the status of the edge device; and
[0167] The state of the first device abstraction is updated based on the message received from the edge device.
[0168] Clause 19. One or more storage media according to any one of clauses 15 to 18, wherein the first type of edge device interacts with other edge devices using a first API, and wherein the second type of edge device interacts with other edge devices using a second API different from the first API.
[0169] Clause 20. One or more storage media as recited in any one of Clauses 15 to 19s, wherein the first type of edge device is manufactured by a first supplier and the second type of device is manufactured by a different supplier.
[0170] Clause 21. A system comprising:
[0171] One or more processors and one or more memories, wherein the one or more memories have stored thereon instructions that, when executed by the one or more processors, cause the one or more processors to implement onboarding and integration services for a plurality of clients of a provider network, wherein the device onboarding and integration services are configured to, for a given client:
[0172] Establishing a connection with an edge device of a remote network of the client;
[0173] receiving, from the edge device, at least one identifier of the edge device, wherein the identifier of the edge device has been previously associated with the client;
[0174] determining a type of device certification from a plurality of types of device certifications that can be used to authenticate different types of edge devices based at least on the identifier;
[0175] performing the determined type of device certification to authenticate the edge device; and
[0176] In response to the verification of the edge device:
[0177] establishing a secure connection with the edge device;
[0178] registering the edge device as a registered edge device of the client;
[0179] sending a device management agent to the edge device, wherein the device management agent is configured to enable communication between the edge device and the device onboard and integrated services for managing the edge device; and
[0180] An indication of one or more locations from which to download one or more software components is sent to the edge device, wherein the one or more software components are configured to onboard the edge device with the device onboarding and integration services.
[0181] Clause 22. The system of clause 21, wherein the device onboard and integrated services are further configured to:
[0182] instantiating a first device abstraction for the edge device, wherein the first device abstraction is configured to emulate the edge device, and wherein a state of the first device abstraction is based on a state of the edge device; and
[0183] A second device abstraction is instantiated as an edge device of a different type than the edge device, wherein a state of the second device abstraction is based on a state of the first device abstraction.
[0184] Clause 23. The system of any one of clauses 21 to 22, wherein the device onboard and integrated services are further configured to:
[0185] determining a third party provider network assigned to manage the edge device based at least on the type of the edge device; and
[0186] An indication of the third party provider network is sent to the edge device.
[0187] Clause 24. The system of any one of clauses 21 to 23, wherein the device onboard and integrated services are further configured to:
[0188] A first device abstraction of the edge device is instantiated, wherein the first device abstraction is configured to emulate the edge device, and wherein a state of the first device abstraction is based on a state of a device abstraction of another provider network.
[0189] Clause 25. The system of any one of clauses 21 to 24, wherein the device onboard and integrated services are configured to, for the given client:
[0190] Sending a software component to the remote network of the client, the software component being configured to, after installation at the remote network, enable the edge device to:
[0191] discovering the client network; and
[0192] A connection to the provider's network is requested.
[0193] Clause 26. A method comprising:
[0194] Executed by one or more computing devices of the provider network:
[0195] Establishing a connection with an edge device of a remote network of the client;
[0196] receiving data from the edge device;
[0197] determining a type of device certification from a plurality of types of device certifications that can be used to authenticate different types of edge devices based at least on the data;
[0198] performing the determined type of device certification to authenticate the edge device; and
[0199] In response to validating the edge device:
[0200] establishing a secure connection with the edge device;
[0201] registering the edge device as a registered edge device of the client;
[0202] sending a device management agent to the edge device, wherein the device management agent is configured to enable communication between the edge device and the device onboard and integrated services for managing the edge device; and
[0203] An indication of one or more locations from which to download one or more software components is sent to the edge device, wherein the one or more software components are configured to onboard the edge device with the device onboarding and integration services.
[0204] Clause 27. The method of clause 26, wherein the data received from the edge device includes an identifier of the edge device, and further includes, by the one or more computing devices of a provider network:
[0205] Prior to receiving the data from the edge device, the identifier is associated with the client.
[0206] Clause 28. The method of clause 27, wherein the identifier comprises:
[0207] At least a portion of a universal product code assigned to the edge device, a media access control address of the edge device, or another identifier that uniquely identifies the edge device relative to other edge devices.
[0208] Clause 29. The method according to any one of clauses 26 to 28, further comprising:
[0209] retrieving a digital certificate associated with the edge device; and
[0210] The digital certificate is sent to the edge device.
[0211] Clause 30. The method according to any one of clauses 26 to 29, further comprising:
[0212] determining a third party provider network assigned to manage the edge device based at least on the type of the edge device; and
[0213] An indication of the third party provider network is sent to the edge device.
[0214] Clause 31. The method according to any one of clauses 26 to 30, further comprising:
[0215] Before establishing a connection with the edge device, connection software to be installed on one or more devices of the client network is sent to the client network, wherein the connection software is configured to enable different types of edge devices to discover the remote network and to connect to the remote network of the client using different types of communication protocols after the device is turned on.
[0216] Clause 32. The method according to any one of clauses 26 to 31, further comprising:
[0217] instantiating a first device abstraction for the edge device, wherein the first device abstraction emulates the edge device, and wherein a state of the first device abstraction is based on a state of the edge device; and
[0218] A second device abstraction is instantiated as an edge device of a different type than the edge device, wherein a state of the second device abstraction is based on the state of the first device abstraction.
[0219] Clause 33. The method according to any one of clauses 26 to 32, further comprising:
[0220] instantiating a first device abstraction of another device abstraction of another provider network, wherein the first device abstraction emulates the edge device, and wherein a state of the first device abstraction is based on a state of the one device abstraction of the another provider network; and
[0221] A second device abstraction of the first device abstraction is instantiated, wherein the second device abstraction emulates an edge device of a different type than the edge device, and wherein a state of the second device abstraction is based on the state of the first device abstraction.
[0222] Clause 34. The method according to any one of clauses 26 to 33, further comprising:
[0223] establishing a connection with another edge device of the remote network of the client;
[0224] receiving other data from another edge device;
[0225] determining a different type of device certification from a plurality of types of device certifications that can be used to authenticate different types of edge devices based at least on the other data;
[0226] performing the different types of device attestation to authenticate another edge device; and
[0227] In response to authenticating another edge device:
[0228] Establishing a secure connection with another edge device;
[0229] registering another edge device of the client;
[0230] sending another device management agent to another edge device, wherein the another device management agent is configured to enable communication between the another edge device and the device onboard and integrated services for managing the another edge device; and
[0231] An indication of one or more locations from which to download one or more other software components is sent to another edge device, wherein the one or more other software components are configured to onboard the other edge device with the device onboarding and integration service.
[0232] Clause 35. One or more non-transitory computer-accessible storage media storing program instructions that, when executed on or across one or more processors of a provider network, cause the one or more processors to:
[0233] Establishing a connection with an edge device of a remote network of the client;
[0234] receiving data from the edge device;
[0235] determining a type of device certification from a plurality of types of device certifications that can be used to authenticate different types of edge devices based at least on the data;
[0236] performing the determined type of device certification to authenticate the edge device; and
[0237] In response to the verification of the edge device:
[0238] establishing a secure connection with the edge device;
[0239] registering the edge device as a registered edge device of the client;
[0240] sending a device management agent to the edge device, wherein the device management agent is configured to enable communication between the edge device and the device onboard and integrated services for managing the edge device; and
[0241] An indication of one or more locations from which to download one or more software components is sent to the edge device, wherein the one or more software components are configured to onboard the edge device with the device onboarding and integration services.
[0242] Clause 36. The one or more storage media of clause 35, wherein the data received from the edge device includes an identifier of the edge device, and wherein the program instructions, when executed on or across the one or more processors, further cause the one or more processors to:
[0243] Prior to receiving the data from the edge device, the identifier is associated with the client.
[0244] Clause 37. One or more storage media as described in Clause 36, wherein the identifier comprises:
[0245] At least a portion of a universal product code assigned to the edge device, a media access control address of the edge device, or another identifier that uniquely identifies the edge device relative to other edge devices.
[0246] Clause 38. One or more storage media according to any one of clauses 35 to 37, wherein the program instructions, when executed on or across the one or more processors, further cause the one or more processors to:
[0247] retrieving a digital certificate associated with the edge device; and
[0248] The digital certificate is sent to the edge device.
[0249] Clause 39. One or more storage media according to any one of clauses 35 to 38, wherein the program instructions, when executed on or across the one or more processors, further cause the one or more processors to:
[0250] instantiating a first device abstraction for the edge device, wherein the first device abstraction emulates the edge device, and wherein a state of the first device abstraction is based on a state of the edge device; and
[0251] A second device abstraction is instantiated as an edge device of a different type than the edge device, wherein a state of the second device abstraction is based on the state of the first device abstraction.
[0252] Clause 40. One or more storage media as described in any one of clauses 35 to 39, wherein the program instructions, when executed on or across the one or more processors, further cause the one or more processors to:
[0253] determining a third party provider network assigned to manage the edge device based at least on the type of the edge device; and
[0254] An indication of the third party provider network is sent to the edge device.
Claims
1. A system comprising: One or more processors and one or more memories, wherein the one or more memories have stored thereon instructions that, when executed by the one or more processors, cause the one or more processors to implement device onboarding and integrated services for a provider network, wherein the device onboarding and integrated services are configured to, for a given client: abstracting an edge device of a remote network of the emulated client by a first device, wherein the edge device is an edge device of a first type; emulating the edge device as a second type of edge device by a second device abstraction; updating a state of the first device abstraction based on a state of the edge device; Based on the updating of the state of the first device abstraction, updating the state of the second device abstraction to an updated state; as well as The updated status of the second device abstraction is sent from the second device abstraction to an application of the remote network of the client.
2. The system of claim 1 , wherein to update the state of the first device abstraction, the device onboarding and integration services are configured to: receiving, by an integration adapter, a message indicating the state of the edge device from another device abstraction of the edge device instantiated at another provider network; and The state of the first device abstraction is updated based on the message received from the another provider network.
3. The system according to any one of claims 1 to 2, wherein to update the state of the first device abstraction, the device onboarding and integration services are configured to: receiving the message indicating the status of the edge device from another device abstraction of the edge device instantiated at a hub device of the remote network of the client; and The state of the first device abstraction is updated based on the message received from the remote network of the client.
4. The system of claim 3, wherein a device abstraction of the hub device of the remote network of the client is instantiated at the provider network, and wherein to update the state of the first device abstraction, the device onboarding and integration services are configured to: receiving, from the hub device of the remote network of the client via an integrated adapter, information indicating a status of the hub device; and The state of the device abstraction of the hub device is updated based on the information indicative of the state of the hub device.
5. The system according to any one of claims 1 to 4, wherein the device onboard and integrated services are configured to: instantiating a third device abstraction of an additional edge device of the remote network of the client, wherein the third device abstraction is configured to emulate the additional edge device, and wherein the additional edge device is an edge device of a third type from a third device vendor, the edge device of the third type interacting with other devices using a third API different from the first API and the second API; receiving, by the integration adapter, a message indicating a status of the further edge device from another device abstraction of the further edge device instantiated at another provider network; and A state of the third device abstraction is updated based on the message received from the another provider network.
6. A method comprising: Executed by one or more computing devices of the provider network: abstracting an edge device of a remote network of the emulated client by a first device, wherein the edge device is an edge device of a first type; emulating the edge device as a second type of edge device by a second device abstraction; updating a state of the first device abstraction based on a state of the edge device; Based on the updating of the state of the first device abstraction, updating the state of the second device abstraction to an updated state; as well as The updated status of the second device abstraction is sent from the second device abstraction to an application of the remote network of the client.
7. The method of claim 6, wherein updating the state of the first device abstraction comprises: receiving, by an integration adapter, a message indicating the state of the edge device from another device abstraction of the edge device instantiated at another provider network; and The state of the first device abstraction is updated based on the message received from the another provider network.
8. The method of any one of claims 6 to 7, wherein updating the state of the first device abstraction comprises: receiving, from another device abstraction of the edge device at the remote network of the client, a message indicating the state of the edge device; and The state of the first device abstraction is updated based on the message received from the remote network of the client.
9. The method of any one of claims 6 to 8, wherein updating the state of the first device abstraction comprises: receiving, through an integrated adapter, a message from the edge device at the remote network of the client indicating the status of the edge device; and The state of the first device abstraction is updated based on the message received from the edge device.
10. The method according to any one of claims 6 to 9, further comprising: A hub device of the remote network of the client is emulated by a hub device abstraction, wherein the hub device abstraction includes the first device abstraction.
11. One or more non-transitory computer-accessible storage media storing program instructions that, when executed on or across one or more processors of a provider network, cause the one or more processors to: abstracting an edge device of a remote network of the emulated client by a first device, wherein the edge device is an edge device of a first type; emulating the edge device as a second type of edge device by a second device abstraction; updating a state of the first device abstraction based on a state of the edge device; Based on the updating of the state of the first device abstraction, updating the state of the second device abstraction to an updated state; as well as The updated status of the second device abstraction is sent from the second device abstraction to an application of the remote network of the client.
12. The one or more storage media of claim 11, wherein to update the state of the first device abstraction, the program instructions, when executed on or across the one or more processors, further cause the one or more processors to: receiving, by an integration adapter, a message indicating the state of the edge device from another device abstraction of the edge device instantiated at another provider network; and The state of the first device abstraction is updated based on the message received from the another provider network.
13. The one or more storage media of any one of claims 11 to 12, wherein to update the state of the first device abstraction, the program instructions, when executed on or across the one or more processors, further cause the one or more processors to: receiving, from another device abstraction of the edge device at the remote network of the client, a message indicating the state of the edge device; and The state of the first device abstraction is updated based on the message received from the remote network of the client.
14. The one or more storage media of any one of claims 11 to 13, wherein to update the state of the first device abstraction, the program instructions, when executed on or across the one or more processors, further cause the one or more processors to: receiving, through an integrated adapter, a message from the edge device at the remote network of the client indicating the status of the edge device; and The state of the first device abstraction is updated based on the message received from the edge device.
15. The one or more storage media of any one of claims 11 to 14, wherein the first type of edge device interacts with other edge devices using a first API, and wherein the second type of edge device interacts with other edge devices using a second API different from the first API.