IP Library Granted Patent US 12,200,046
Granted Patent B2
US 12,200,046 · App. 18/355,201 · Granted Jan 14, 2025

Load balancing device connections

Inventor: Nathan Wilfert (Wellesley, MA)
Assignee: SimpliSafe, Inc.
H04L67/1014H04L67/02H04L67/1008H04L67/101H04L67/1012H04L67/1031H04L67/14
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,200,046
App. No.
18/355,201
Granted
Jan 14, 2025
Kind
B2
Abstract

A computing device including a memory and a processor is provided. The processor is configured to receive, from a device configured to communicate data generated by at least one sensor disposed in a location being monitored, a request to establish a bi-directional connection between the device and a computing environment; identify a structure of data storing a uniform resource locator (URL) and a set of identifiers, the set of identifiers being representative of a group of connections with the computing environment; and respond, to the device, with a response specifying the URL, thereby enabling the device to establish the bi-directional connection.

Claims (35)

1. A method comprising:

receiving, from a device, a request to establish a bi-directional connection between the device and a computing environment comprising a plurality of servers, individual servers of the plurality supporting at least one group of connections;

determining that no group of connections within the computing environment has capacity to support the received bi-directional connection;

adding a new group of connections to a server of the plurality of servers; and

adding the received bi-directional connection to the new group of connections to enable receipt of data generated by at least one sensor disposed in a location being monitored by the device.

2. The method of claim 1 , further comprising determining that the server of the plurality has capacity to support the new group of connections and the received bi-directional connection prior to adding the new group of connections.

3. The method of claim 2 , wherein determining that the server of the plurality has capacity to support the new group of connections and the received bi-directional connection comprises:

calculating one or more metrics indicative of performance of a system comprising the device and the computing environment; and

evaluating one or more rules using the one or more metrics.

4. The method of claim 3 , wherein calculating the one or more metrics comprises calculating one or more of available memory, central processing unit utilization, and network responsiveness.

5. The method of claim 1 , further comprising:

determining that no server of the plurality has capacity to support the received bi-directional connection; and

provisioning the server of the plurality prior to adding the new group of connections.

6. The method of claim 5 , wherein provisioning the server comprises launching a new virtual machine within the computing environment.

7. The method of claim 1 , wherein adding the new group of connections comprises setting up a new uniform resource locator that identifies the new group of connections.

8. The method of claim 1 , further comprising responding, to the device, with a uniform resource locator that identifies the new group of connections.

9. The method of claim 1 , wherein determining that no group of connections within the computing environment has capacity to support the received bi-directional connection comprises comparing one or more of a number of connections within a group of connections or an amount of data being communicated through the group of connections to one or more threshold values.

10. A system of computing devices, the system comprising at least one computing device comprising:

a memory; and

at least one processor coupled with the memory and configured to:

receive, from a device, a request to establish a bi-directional connection between the device and the system, some computing devices within the system supporting at least one group of connections;

determine whether a group of connections within the system has capacity to support the requested bi-directional connection; and

add the requested bi-directional connection to the group of connections in response to a determination that the group of connections has capacity to support the received bi-directional connection to enable receipt of data generated by at least one sensor disposed in a location being monitored by the device.

11. The system of claim 10 , wherein the at least one processor is further configured to respond, to the device, with a uniform resource locator that identifies the group of connections.

12. The system of claim 10 , wherein to determine whether the group of connections has capacity to support the received bi-directional connection comprises to compare one or more of a number of connections within the group of connections or an amount of data being communicated through the group of connections to one or more threshold values.

13. The system of claim 10 , wherein the at least one processor is further configured to determine whether a computing device within the system has capacity to support a new group of connections.

14. The system of claim 13 , wherein to determine whether the computing device within the system has capacity to support the new group of connections comprises to:

calculate one or more metrics indicative of performance of another system comprising the device and the system; and

evaluate one or more rules using the one or more metrics.

15. The system of claim 14 , wherein the one or more metrics comprise one or more of available memory, central processing unit utilization, and network responsiveness.

16. The system of claim 13 , wherein the at least one processor is further configured to add the new group of connections to the computing device within the system in response to a determination that no group of connections within the system has capacity to support another bi-directional connection.

17. The system of claim 16 , wherein to add the new group of connections comprises to setup a new uniform resource locator that identifies the new group of connections.

18. The system of claim 10 , wherein the at least one processor is further configured to determine whether any computing device within the system has capacity to support another group of connections.

19. The system of claim 18 , wherein the at least one processor is further configured to provision a computing device within the system in response to a determination that no computing device within the system has capacity to support the other group of connections.

20. The system of claim 19 , wherein to provision the computing device comprises to launch a new virtual machine within the system.

Assignments (2)
SECURITY INTEREST Recorded Nov 12, 2025
From: SIMPLISAFE, INC.
To: CAPITAL ONE, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 073579/0854 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 16, 2023
From: WILFERT, NATHAN
To: SIMPLISAFE, INC.
Reel/Frame 064601/0985 →
Continuity (3)
Division 18180575 · Mar 8, 2023
Continuation 18055652 · Nov 15, 2022
Related Publication 20240163329A1 · May 16, 2024
References Cited (38)
US 6910071B2 · Quintero · 2005 [cited by examiner]
US 7039708B1 · Knobl et al. · 2006 [cited by applicant]
US 7164653B1 · Bezoza · 2007 [cited by examiner]
US 7552467B2 · Lindsay · 2009 [cited by examiner]
US 8392553B2 · Petropoulakis · 2013 [cited by examiner]
US 8604977B2 · Wilfert · 2013 [cited by examiner]
US 8812727B1 · Sorenson, III · 2014 [cited by examiner]
US 9373207B2 · Ricci et al. · 2016 [cited by applicant]
US 9672110B1 · Patel · 2017 [cited by applicant]
US 10104077B1 · Irwan et al. · 2018 [cited by applicant]
US 10545935B2 · Hegde et al. · 2020 [cited by applicant]
US 10782677B2 · Zheng et al. · 2020 [cited by applicant]
US 10824750B2 · De Lavarene · 2020 [cited by examiner]
US 10909211B2 · De Lavarene · 2021 [cited by examiner]
US 11151124B2 · Wong et al. · 2021 [cited by applicant]
US 11158177B1 · Elhattab et al. · 2021 [cited by applicant]
US 11323884B2 · Lifshitz et al. · 2022 [cited by applicant]
US 11750693B1 · Wilfert · 2023 [cited by examiner]
US 11888929B1 · Wilfert · 2024 [cited by examiner]
US 20120200711A1 · Dolin · 2012 [cited by examiner]
US 20130166640A1 · Wilfert · 2013 [cited by examiner]
US 20140280727A1 · Richards et al. · 2014 [cited by applicant]
US 20140313882A1 · Rucker et al. · 2014 [cited by applicant]
US 20150290808A1 · Renkis · 2015 [cited by examiner]
US 20160072713A1 · Mhatre et al. · 2016 [cited by applicant]
US 20170064003A1 · Kubota · 2017 [cited by applicant]
US 20170171305A1 · Jones · 2017 [cited by examiner]
US 20170278368A1 · Burke · 2017 [cited by applicant]
US 20190312873A1 · Katieb · 2019 [cited by examiner]
US 20200128094A1 · De Lavarene et al. · 2020 [cited by applicant]
US 20210144008A1 · Prager · 2021 [cited by applicant]
US 20240163329A1 · Wilfert · 2024 [cited by examiner]
US 20240163330A1 · Wilfert · 2024 [cited by examiner]
US 20240163331A1 · Wilfert · 2024 [cited by examiner]
WO 2002013036A1 · 2002 [cited by applicant]
Gerald Gui et al. “Scaling Services with Shard Manager” posted Production Engineering on Aug. 24, 2020 (16 pages). [cited by applicant]
Wikipedia: Load balancing (computing) https://web.archive.org/web/20221112080224/en.wikipedia.org/wiki/Load_balancing_(computing) captured by the Wayback Machine on Nov. 12, 2022 (17 pages). [cited by applicant]
International Search Report and Written Opinion mailed Mar. 15, 2024 for International Application No. PCT/US2023/078782, 8 pages. [cited by applicant]