IP Library Granted Patent US 9,985,829
Granted Patent B2
US 9,985,829 · App. 14/105,099 · Granted May 29, 2018

Management and provisioning of cloud connected devices

Inventors: Anthony John Tarlano (Menlo Park, CA); Tad Hunt (Sunnyvale, CA)
Assignee: EXABLOX CORPORATION
H04L41/0806G06F21/31H04L63/08H04L67/02H04L67/10H04L67/16
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 9,985,829
App. No.
14/105,099
Granted
May 29, 2018
Kind
B2
Abstract

A method for provisioning of a device or a group of devices discovery and registration service comprises receiving availability messages from unbound devices, receiving a request for the service, correlating the service identifying data to the device identifying data, selecting candidate unbound devices, prompting the user to select an unbound device, or an unbound group of devices, receiving a selected unbound device, or a selected unbound group of devices, from the user, sending a machine generated code to an output device associated with the selected unbound device or group of devices, prompting the user to confirm ownership of the selected unbound device or group of devices, by entering the machine generated code, receiving, from the user, a human entered code, comparing the machine generated code to the human entered code, and based on the comparison, selectively binding the selected device, or the selected group of devices, to the service.

Claims (58)

1. A method for provisioning of a device discovery and registration service, the method comprising:

receiving one or more availability messages from one or more unbound devices, the one or more availability messages stored by a controller to a database, the one or more availability messages including respective device identifying data including public IP addresses associated with the one or more unbound devices;

receiving, from a user via a web application, a request for a service associated with the web application, the request including service identifying data including a public IP address associated with the web application;

comparing the public IP address associated with the web application to the public IP addresses associated with the one or more unbound devices;

based on the comparing of the public IP address associated with the web application to the public IP addresses associated with the one or more unbound devices, selecting one or more candidate unbound devices from the one or more unbound devices;

prompting the user to select an unbound device from the one or more candidate unbound devices based on the device identifying data;

receiving, from the user, a selected unbound device;

sending a machine generated code to the selected unbound device, the machine generated code sent from the controller;

prompting the user to confirm ownership of the selected unbound device by entering the machine generated code sent to the selected unbound device;

receiving, from the user via the web application, a human entered code;

comparing the machine generated code to the human entered code; and

based on the comparing of the machine generated code to the human entered code, selectively binding the selected unbound device to the service associated with the web application.

2. The method of claim 1 , further comprising handing off the service associated with the web application to a service proxy for further communications between the web application and the selected device.

3. The method of claim 2 , wherein the service proxy runs on a second machine that is separate from a first machine that performs the selective binding to provide scalability.

4. The method of claim 1 , wherein the machine generated code is generated randomly.

5. The method of claim 1 , wherein the machine generated code is generated using a cryptographically secure algorithm.

6. The method of claim 1 , wherein the request for the service is contingent upon verifying credentials associated with the user.

7. The method of claim 1 , wherein the public IP address associated with the web application is provided by the user.

8. The method of claim 1 , wherein the web application is a single-page application running on a user device and is connected to the service associated with the web application in a trusted domain.

9. The method of claim 1 , wherein the selected device and the web application are situated behind the same public IP address.

10. The method of claim 1 , wherein the web application and the one or more unbound devices use secure protocols to communicate through an untrusted domain.

11. The method of claim 1 , wherein the one or more availability messages from the one or more unbound devices are generated automatically when the one or more unbound devices are available to be bound.

12. The method of claim 1 , wherein the device identifying data further includes one or more of a host name, a machine address, a device identification, a cluster identification, and versioning information.

13. A method for provisioning of a group of devices discovery and registration service, the method comprising:

receiving one or more availability messages from one or more unbound groups of devices, the one or more availability messages stored by a controller to a database, the one or more availability messages including respective group identifying data including public IP addresses associated with the one or more unbound groups of devices;

receiving, from a user via a web application, a request for a service associated with the web application, the request including service identifying data including a public IP address associated with the web application;

comparing the public IP address associated with the web application to the public IP addresses associated with the one or more unbound groups of devices;

based on the comparing of the public IP address associated with the web application to the public IP addresses associated with the one or more unbound groups of devices, selecting one or more candidate unbound groups of devices from the one or more unbound groups of devices;

prompting the user to select an unbound group of devices from the one or more candidate unbound groups of devices based on the group identifying data;

receiving, from the user, a selected unbound group of devices;

sending a machine generated code to the selected unbound group of devices, the machine generated code sent from the controller;

prompting the user to confirm ownership of the selected unbound group of devices by entering the machine generated code sent to the selected unbound group of devices;

receiving, from the user via the web application, a human entered code;

comparing the machine generated code to the human entered code; and

based on the comparing of the machine generated code to the human entered code, selectively binding the selected unbound group of devices to the service associated with the web application.

14. The method of claim 13 , further comprising handing off the service associated with the web application to a service proxy for further communications between the web application and the selected group of devices.

15. The method of claim 13 , wherein the service proxy runs on a second machine that is separate from a first machine that performs the selective binding to provide scalability.

16. The method of claim 13 , wherein the machine generated code is generated randomly.

17. The method of claim 13 , wherein the machine generated code is generated using a cryptographically secure algorithm.

18. The method of claim 13 , wherein the request for the service is contingent upon verifying credentials associated with the user.

19. The method of claim 13 , wherein the public IP address associated with the web application is provided by the user.

20. The method of claim 13 , wherein the web application is a single-page application running on a user device and is connected to the registration service associated with the web application in a trusted domain.

21. The method of claim 13 , wherein the selected group of devices and the web application are situated behind the same public IP address.

22. The method of claim 13 , wherein the web application and the one or more unbound groups of devices use secure protocols to communicate through an untrusted domain.

23. The method of claim 13 , wherein the one or more availability messages from the one or more unbound groups of devices are generated automatically when the one or more unbound group of devices are available for binding.

24. The method of claim 13 , wherein the group identifying data further includes one or more of a host name, a machine address, a group identification, a cluster identification, and versioning information.

25. A non-transitory computer-readable medium having embodied thereon a program, the program being executable by a processor to perform a method for provisioning of a device or a group of devices discovery and registration service, the method comprising:

receive one or more availability messages from one or more unbound devices or one or more unbound groups of devices, the one or more availability messages stored by a controller to a database, the one or more availability messages including respective device identifying data or group identifying data, including public IP addresses associated with the one or more unbound devices or groups of devices;

receive, from a user via a web application, a request for a service associated with the web application, the service request including service identifying data including a public IP address associated with the web application;

compare the public IP address associated with the web application to the public IP addresses associated with the one or more unbound devices or groups of devices;

based on the compare of the public IP address associated with the web application to the public IP addresses associated with the one or more unbound devices or groups of devices, select one or more candidate unbound devices from the one or more unbound devices or one or more candidate unbound groups of devices from the one or more unbound groups of devices;

prompt the user to select an unbound device from the one or more candidate unbound devices based on the device identifying data or an unbound group of devices from the one or more candidate unbound groups of devices based on the group identifying data;

receive, from the user, a selected unbound device or a selected unbound group of devices;

send a machine generated code to a device associated with the selected unbound device or the selected unbound group of devices, the machine generated code sent from the controller;

prompt the user to confirm ownership of the selected unbound device or the selected unbound group of devices, by entering the machine generated code sent to the device associated with the selected unbound device or the selected unbound group of devices;

receive, from the user via the web application, a human entered code;

compare the machine generated code to the human entered code; and

based on the compare of the machine generated code to the human entered code, selectively bind the selected unbound device or the selected unbound group of devices to the service associated with the web application.

Assignments (6)
CHANGE OF NAME Recorded Aug 16, 2024
From: STORAGECRAFT TECHNOLOGY CORPORATION
To: STORAGECRAFT TECHNOLOGY LLC
Reel/Frame 068660/0176 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 16, 2024
From: MONROE CAPITAL MANAGEMENT ADVISORS, LLC; ARCSTOR MIDCO LLC; ARCSERVE ACQUISITION COMPANY LLC; ARCSERVE (USA) LLC; STORAGECRAFT TECHNOLOGY, LLC
To: STORAGECRAFT, LLC
Reel/Frame 068660/0208 →
SECURITY INTEREST Recorded Mar 16, 2021
From: ARCSERVE (USA) LLC; STORAGECRAFT TECHNOLOGY LLC; ZETTA, LLC
To: MONROE CAPITAL MANAGEMENT ADVISORS, LLC, AS COLLATERAL AGENT
Reel/Frame 055603/0219 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT Recorded Mar 16, 2021
From: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
To: EXABLOX CORPORATION; STORAGECRAFT TECHNOLOGY CORPORATION; STORAGECRAFT INTERMEDIATE HOLDINGS, INC.; STORAGECRAFT ACQUISITION CORPORATION
Reel/Frame 055614/0852 →
SECURITY INTEREST Recorded Mar 27, 2017
From: EXABLOX CORPORATION; STORAGECRAFT INTERMEDIATE HOLDINGS, INC.; STORAGECRAFT ACQUISITION CORPORATION; STORAGECRAFT TECHNOLOGY CORPORATION
To: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
Reel/Frame 041748/0849 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 27, 2014
From: TARLANO, ANTHONY JOHN; HUNT, TAD
To: EXABLOX CORPORATION
Reel/Frame 033198/0659 →
Continuity (1)
Related Publication 20150172114A1 · Jun 18, 2015