IP Library Granted Patent US 11,847,499
Granted Patent B2
US 11,847,499 · App. 17/552,077 · Granted Dec 19, 2023

Coordinating multiple components

Inventors: Matthew John Joseph LaMantia (San Francisco, CA); Brian James Buck (Livermore, CA); Stephen J. Edwards (San Francisco, CA); William Neil Robinson (Sunnyvale, CA)
Assignee: LOOKOUT INC.
G06F9/5038G06F9/52H04L67/01
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 11,847,499
App. No.
17/552,077
Granted
Dec 19, 2023
Kind
B2
Abstract

Systems and methods for coordinating components can include: determining, by a first application executing on a client device, a need to perform a sharable functional task; identifying a first software component installed on the client device and capable of performing a first variation of the sharable functional task; identifying a second software component installed on the client device and capable of performing a second variation of the sharable functional task, wherein the second variation of the sharable functional task is functionally overlapping with and not identical to the first variation; identifying a set of characteristics of both the first software component and the second software component; selecting the second software component for performing the sharable functional task based on the set of characteristics, where the set of characteristics includes at least a version number; and delegating performance of the sharable functional task to the second software component.

Claims (44)

1. A method, implemented by one or more processors, comprising:

determining, by a first application executing on a client device, a need to perform a sharable functional task;

identifying a first software component installed on the client device and capable of performing a first variation of the sharable functional task;

identifying a second software component installed on the client device and capable of performing a second variation of the sharable functional task, wherein the second variation of the sharable functional task is functionally overlapping with and not identical to the first variation;

identifying a set of characteristics of both the first software component and the second software component;

selecting the second software component for performing the sharable functional task based on the set of characteristics, wherein the set of characteristics includes at least a location of execution of the second software component within a plurality of application containers executing on the client device;

delegating, by the one or more processors, performance of the sharable functional task to the second software component while suspending performance of the first variation of the sharable functional task by the first software component and continuing to perform one or more non-duplicative tasks of the first software component using the first software component; and

authenticating the second software component by performing any of:

comparing a digital certificate of the second software component with a list of known signers;

comparing a presence or an absence of code sequences of one or more of the second software component; and

comparing a calculated hash value of the second software component with a trusted authentication hash value.

2. The method of claim 1 , further comprising:

in response to detecting that the second software component is no longer installed or executing, assigning, by the one or more processors, performance of the sharable functional task to the first software component.

3. The method of claim 2 , further comprising:

in response to detecting that the second software component is reinstalled or executing, delegating, by the one or more processors, performance of the sharable functional task back to the second software component.

4. A system comprising:

a computer processor; and

a manager module executing on the computer processor and configured to cause the computer processor to:

determine, by a first application executing on a client device, a need to perform a sharable functional task;

identify a first software component installed on the client device and capable of performing a first variation of the sharable functional task;

identify a second software component installed on the client device and capable of performing a second variation of the sharable functional task, wherein the second variation of the sharable functional task is functionally overlapping with and not identical to the first variation;

identify a set of characteristics of both the first software component and the second software component;

select the second software component for performing the sharable functional task based on the set of characteristics, wherein the set of characteristics includes a location of execution of the second software component within a plurality of application containers executing on the client device;

delegate, by the computer processor, performance of the sharable functional task to the second software component; and

wherein the manager module is configured to cause the computer processor to authenticate the second software component by any of:

comparing a digital certificate of the second software component with a list of known signers;

comparing a presence or an absence of code sequences of one or more of the second software component; and

comparing a calculated hash value of the second software component with a trusted authentication hash value.

5. The system of claim 4 , wherein the manager module is configured to cause the computer processor to:

in response to detecting that the second software component is no longer installed or executing, assign, by the computer processor, performance of the sharable functional task to the first software component.

6. The system of claim 5 , wherein the manager module is configured to cause the computer processor to:

in response to detecting that the second software component is reinstalled or executing, delegate, by the computer processor, performance of the sharable functional task back to the second software component.

7. A non-transitory computer-readable storage medium comprising a plurality of instructions configured to execute on at least one computer processor to cause the at least one computer processor to:

determine, by a first application executing on a client device, a need to perform a sharable functional task;

identify a first software component installed on the client device and capable of performing a first variation of the sharable functional task;

identify a second software component installed on the client device and capable of performing a second variation of the sharable functional task, wherein the second variation of the sharable functional task is functionally overlapping with and not identical to the first variation;

identify a set of characteristics of both the first software component and the second software component;

select the second software component for performing the sharable functional task based on the set of characteristics, wherein the set of characteristics includes a location of execution of the second software component within a plurality of application containers executing on the client device; and

delegate, by the at least one computer processor, performance of the sharable functional task to the second software component.

8. The non-transitory computer-readable storage medium of claim 7 , wherein the plurality of instructions are configured to execute on the at least one computer processor to cause the at least one computer processor to:

in response to detecting that the second software component is no longer installed or executing, assign, by the at least one computer processor, performance of the sharable functional task to the first software component.

9. The non-transitory computer-readable storage medium of claim 8 , wherein the plurality of instructions are configured to execute on the at least one computer processor to cause the at least one computer processor to:

in response to detecting that the second software component is reinstalled or executing, delegate, by the at least one computer processor, performance of the sharable functional task back to the second software component.

10. The non-transitory computer-readable storage medium of claim 7 , wherein the plurality of instructions are configured to execute on the at least one computer processor to cause the at least one computer processor to authenticate the second software component.

Assignments (6)
SECURITY INTEREST Recorded Oct 7, 2025
From: LOOKOUT, INC.
To: MIDCAP FINANCIAL TRUST
Reel/Frame 073028/0189 →
SECURITY INTEREST Recorded Oct 2, 2025
From: LOOKOUT, INC.
To: CRESCENT COVE OPPORTUNITY LENDING, LLC, AS AGENT
Reel/Frame 072989/0675 →
SECURITY INTEREST Recorded Aug 10, 2024
From: LOOKOUT, INC.
To: MIDCAP FINANCIAL TRUST
Reel/Frame 068538/0177 →
RELEASE OF PATENT SECURITY INTEREST AT REEL 59909 AND FRAME 0764 Recorded Jun 2, 2023
From: ALTER DOMUS (US) LLC, AS ADMINISTRATIVE AGENT
To: LOOKOUT, INC.
Reel/Frame 063844/0638 →
SECURITY INTEREST Recorded May 9, 2022
From: LOOKOUT, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 059909/0764 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 15, 2021
From: LAMANTIA, MATTHEW JOHN JOSEPH; BUCK, BRIAN JAMES; EDWARDS, STEPHEN J.; ROBINSON, WILLIAM NEIL
To: LOOKOUT INC.
Reel/Frame 058401/0504 →
Continuity (5)
Continuation 16572473 · Sep 16, 2019
Continuation 15620784 · Jun 12, 2017
Continuation 14842771 · Sep 1, 2015
Provisional Application 62186224 · Jun 29, 2015
Related Publication 20220107843A1 · Apr 7, 2022