IP Library Granted Patent US 12,210,726
Granted Patent B1
US 12,210,726 · App. 16/777,739 · Granted Jan 28, 2025

System, method, and application programming interface for implementing cloud-based device control

Inventors: Tipton Loo (Redmond, WA); Dennis W. Read (Bellevue, WA); Joseph D. Bond (Sammamish, WA)
Assignee: CONCENTRIX CVG CUSTOMER MANAGEMENT GROUP INC.
G06F3/0482G16Y30/00G16Y40/10G16Y40/20G16Y40/35H04L43/0817H04L67/125H04L67/34H04W4/70
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,210,726
App. No.
16/777,739
Granted
Jan 28, 2025
Kind
B1
Abstract

A framework and a method provided for monitoring and managing IoT devices. The method includes providing a cloud- and device-agnostic IoT cloud platform that interfaces with applications, IoT management platforms, and IoT device controllers. Each IoT management platform manages one or more IoT device controllers, and each IoT device controller controls a respective IoT device. The method includes receiving a request for performing a transaction corresponding to an IoT device from an application. In response to receiving the request, the method includes generating a set of operation commands for performing the transaction through an IoT management platform. The set of operation commands is generated based on a set of configurations associating the transaction to the IoT management platform. The method also includes triggering performance of the transaction by issuing the set of operation commands to the IoT management platform.

Claims (60)

1. A method of monitoring and managing Internet of Things (IoT) devices, the method comprising:

providing a cloud- and device-agnostic IoT cloud platform that (i) concurrently interfaces with a plurality of applications and (ii) concurrently interfaces with a plurality of IoT management platforms, wherein each IoT management platform corresponds to a respective cloud provider and manages one or more IoT device controllers, and each IoT device controller controls a respective IoT device;

receiving a first request for performing a first transaction corresponding to a first IoT device from a first application;

in response to receiving the first request, generating a first set of operation commands for performing the first transaction through a first IoT management platform to manage a first IoT device controller that controls the first IoT device, wherein the first set of operation commands is generated based on a first set of configurations associating the first transaction to the first IoT management platform; and

triggering performance of the first transaction by issuing the first set of operation commands to the first IoT management platform through an interface between the cloud- and device-agnostic IoT cloud platform and the first IoT management platform,

wherein the first set of configurations follows conventions of an abstraction layer that describes the plurality of IoT management platforms using (i) a set of common attributes or parameters corresponding to aspects that are common to respective cloud providers corresponding to the plurality of IoT management platforms and (ii) a set of pluggable attributes or parameters corresponding to aspects that are unique to a respective cloud provider corresponding to each IoT management platform.

2. The method of claim 1 , further comprising:

in response to receiving the first request, generating a second set of operation commands for performing the first transaction through a second IoT management platform, different from the first IoT management platform, to manage the first IoT device controller that controls the first IoT device, wherein the second set of operation commands is generated based on a second set of configurations associating the first transaction to the second IoT management platform, the second set of operation commands being different from the first set of operation commands in accordance with a difference between the first set of configurations and the second set of configurations; and

triggering performance of the first transaction by issuing the second set of operation commands to the second IoT management platform through an interface between the cloud- and device-agnostic IoT cloud platform and the second IoT management platform.

3. The method of claim 2 , wherein triggering performance of the first transaction by issuing the first set of operation commands and triggering performance of the first transaction by issuing the second set of operation commands are respectively performed in response to two separate run-time requests for performing the first transaction.

4. The method of claim 2 , wherein triggering performance of the first transaction by issuing the first set of operation commands and triggering performance of the first transaction by issuing the second set of operation commands are respectively performed in response to a single run-time request for performing the first transaction.

5. The method of claim 2 , wherein generating the first set of operation commands and generating the second set of operation commands are respectively performed in response to a single configuration request for setting up the first transaction on the cloud- and device-agnostic IoT cloud platform.

6. The method of claim 2 , wherein generating the first set of operation commands and generating the second set of operation commands are respectively performed in response to a single run-time request for performing the first transaction.

7. The method of claim 1 , further comprising:

displaying one or more dashboards, in a graphical user interface, wherein each dashboard displays respective data related to one or more of the plurality of IoT management platforms; and

displaying one or more affordances, in the graphical user interface, configured to select a respective IoT management platform of the plurality of IoT management platforms for performing a respective transaction,

wherein the first set of operation commands is generated further based on detecting user selection of a first affordance corresponding to the first IoT management platform in the graphical user interface.

8. The method of claim 1 , further comprising:

receiving a second request for ceasing or reversing performance of the first transaction corresponding to the first IoT device from the first application;

in response to receiving the second request, generating a third set of operation commands for ceasing or reversing performance of the first transaction, wherein the third set of operation commands is generated based on a respective set of configurations associating the first transaction to a respective IoT management platform of the plurality of IoT management platforms; and

causing the respective IoT management platform to cease or reverse performance of the first transaction by issuing the third set of operation commands to the respective IoT management platform through a respective interface between the cloud- and device-agnostic IoT cloud platform and the respective IoT management platform.

9. The method of claim 8 , wherein the second request is for ceasing performance of the first transaction, and the respective IoT management platform is the first IoT management platform through which the first set of operation commands were issued to trigger performance of the first transaction.

10. The method of claim 8 , wherein the second request is for reversing performance of the first transaction, and the respective IoT management platform is a second IoT management platform that is distinct from the first IoT management platform through which the first set of operation commands were issued to trigger performance of the first transaction.

11. The method of claim 1 , further comprising:

receiving a third request for performing a second transaction, distinct from the first transaction, corresponding to the first IoT device from the first application;

in response to receiving the third request, generating a fourth set of operation commands for performing the second transaction through the first IoT management platform, wherein the fourth set of operation commands is generated based on a third set of configurations associating the second transaction to the first IoT management platform, wherein the first set of configurations and the third set of configurations include a common subset of configurations and one or more different configurations; and

triggering performance of the second transaction by issuing the fourth set of operation commands to the first IoT management platform through the interface between the cloud- and device-agnostic IoT cloud platform and the first IoT management platform.

12. The method of claim 1 , wherein the first transaction comprises repeated actions occurring over a respective IoT management platform during a period of time, and wherein the method further comprises:

determining if the first IoT management platform has reached a first predefined capacity threshold; and

in accordance with a determination that the first IoT management platform has reached the first predefined capacity threshold:

generating a fifth set of operation commands for ceasing or pausing performance of the first transaction, wherein the fifth set of operation commands is generated based on the first set of configurations associating the first transaction to the first IoT management platform; and

causing the first IoT management platform to cease or pause performance of the first transaction by issuing the fifth set of operation commands to the first IoT management platform through the interface between the cloud- and device-agnostic IoT cloud platform and the first IoT management platform; and

triggering performance of the first transaction by issuing a sixth set of operation commands, distinct from the first set of operation commands, to a third IoT management platform, distinct from the first IoT management platform, through an interface between the cloud- and device-agnostic IoT cloud platform and the third IoT management platform, wherein the sixth set of operation commands is generated based on a fourth set of configurations associating the first transaction to the third IoT management platform.

13. The method of claim 1 , further comprising:

receiving a fourth request for performing a third transaction corresponding to a second IoT device, distinct from the first IoT device, from the first application;

in response to receiving the fourth request, generating a seventh set of operation commands for performing the third transaction through a fourth IoT management platform, wherein the seventh set of operation commands is generated based on a fourth set of configurations associating the third transaction to the second IoT device; and

triggering performance of the third transaction by issuing the seventh set of operation commands to the fourth IoT management platform through an interface between the IoT cloud platform and the fourth IoT management platform.

14. The method of claim 1 , wherein the one or more IoT device controllers include one or more proxy or gateway devices that control one or more IoT devices that lack one or more capabilities to run an IoT stack.

15. The method of claim 14 , wherein number of the one or more proxy or gateway devices is determined based at least on number of IoT devices that lack one or more capabilities to run an IoT stack.

16. The method of claim 1 , further comprising:

receiving one or more responses from the first IoT management platform and the first IoT device controller; and

in response to receiving the one or more responses, translating the one or more responses and outputting a normalized response for the first application.

17. The method of claim 16 , wherein translating the one or more responses includes aggregating and normalizing the one or more responses across the plurality of IoT management platforms, and outputting the normalized response includes displaying, in a graphical user interface, a view of the normalized response.

18. A computer system, comprising:

one or more processors; and

memory;

wherein the memory stores one or more programs configured for execution by the one or more processors, and the one or more programs comprising instructions for:

providing a cloud- and device-agnostic Internet of Things (IoT) cloud platform that (i) concurrently interfaces with a plurality of applications and (ii) concurrently interfaces with a plurality of IoT management platforms, wherein each IoT management platform corresponds to a respective cloud provider and manages one or more IoT device controllers, and each IoT device controller controls a respective IoT device;

receiving a first request for performing a first transaction corresponding to a first IoT device from a first application;

in response to receiving the first request, generating a first set of operation commands for performing the first transaction through a first IoT management platform to manage a first IoT device controller that controls the first IoT device, wherein the first set of operation commands is generated based on a first set of configurations associating the first transaction to the first IoT management platform; and

triggering performance of the first transaction by issuing the first set of operation commands to the first IoT management platform through an interface between the cloud- and device-agnostic IoT cloud platform and the first IoT management platform,

wherein the first set of configurations follows conventions of an abstraction layer that describes the plurality of IoT management platforms using (i) a set of common attributes or parameters corresponding to aspects that are common to respective cloud providers corresponding to the plurality of IoT management platforms and (ii) a set of pluggable attributes or parameters corresponding to aspects that are unique to a respective cloud provider corresponding to each IoT management platform.

19. A non-transitory computer readable storage medium storing one or more programs configured for execution by a computer system having a display, one or more processors, and memory, the one or more programs comprising instructions for:

providing a cloud- and device-agnostic Internet of Things (IoT) cloud platform that (i) concurrently interfaces with a plurality of applications and (ii) concurrently interfaces with a plurality of IoT management platforms, wherein each IoT management platform corresponds to a respective cloud provider and manages one or more IoT device controllers, and each IoT device controller controls a respective IoT device;

receiving a first request for performing a first transaction corresponding to a first IoT device from a first application;

in response to receiving the first request, generating a first set of operation commands for performing the first transaction through a first IoT management platform to manage a first IoT device controller controlling the first IoT device, wherein the first set of operation commands is generated based on a first set of configurations associating the first transaction to the first IoT management platform; and

triggering performance of the first transaction by issuing the first set of operation commands to the first IoT management platform through an interface between the cloud- and device-agnostic IoT cloud platform and the first IoT management platform,

wherein the first set of configurations follows conventions of an abstraction layer that describes the plurality of IoT management platforms using (i) a set of common attributes or parameters corresponding to aspects that are common to respective cloud providers corresponding to the plurality of IoT management platforms and (ii) a set of pluggable attributes or parameters corresponding to aspects that are unique to a respective cloud provider corresponding to each IoT management platform.

20. The method of claim 1 , wherein each IoT management platform is a cloud platform that is separate and distinct from the one or more IoT device controllers.

21. The method of claim 1 , wherein the set of pluggable attributes or parameters is based on problem class, cloud provider, and device type.

Assignments (7)
MERGER Recorded Aug 23, 2023
From: PROKARMA, INC.
To: PROKARMA INDIA HOLDING CO.
Reel/Frame 064679/0983 →
MERGER Recorded Aug 23, 2023
From: PROKARMA INDIA HOLDING CO.
To: CONCENTRIX CVG CUSTOMER MANAGEMENT GROUP INC.
Reel/Frame 064685/0145 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Jul 14, 2023
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: PROKARMA, INC.
Reel/Frame 064274/0985 →
NOTICE OF GRANT OF SECURITY INTEREST IN PATENTS Recorded Dec 27, 2021
From: PROKARMA, INC.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 058590/0073 →
RELEASE OF SECURITY INTEREST IN INTELLECTUAL PROPERTY Recorded Dec 27, 2021
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: PROKARMA, INC.
Reel/Frame 058592/0093 →
SECURITY AGREEMENT Recorded Dec 18, 2020
From: PROKARMA, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 054806/0241 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 24, 2020
From: LOO, TIPTON; READ, DENNIS W.; BOND, JOSEPH D.
To: PROKARMA INC.
Reel/Frame 052214/0684 →
Continuity (1)
Provisional Application 62799587 · Jan 31, 2019
References Cited (9)
US 20180034914A1 · Christopher · 2018 [cited by examiner]
US 20180054490A1 · Wadhwa · 2018 [cited by examiner]
US 20190149361A1 · Sarwar · 2019 [cited by examiner]
US 20190149599A1 · Bartfai-Walcott · 2019 [cited by examiner]
US 20190182333A1 · Bartfai-Walcott · 2019 [cited by examiner]
US 20190245713A1 · Lo · 2019 [cited by examiner]
US 20190327152A1 · Shemer · 2019 [cited by examiner]
US 20200177671A1 · Tofighbakhsh · 2020 [cited by examiner]
US 20200389528A1 · Ha · 2020 [cited by examiner]
Cited By (7)
US 1,132,943 US 1,132,944 US 1,134,395 US 1,146,976 US 12,401,527 US 12,470,565 US 12,483,543