IP Library Granted Patent US 11,237,875
Granted Patent B2
US 11,237,875 · App. 16/572,473 · Granted Feb 1, 2022

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/42
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,237,875
App. No.
16/572,473
Granted
Feb 1, 2022
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 (46)

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 version number;

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, by the one or more processors, 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 the second software component;

comparing a similarity or dissimilarity of the second software component with known good or bad software components; 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 at least a restrictiveness of the second software component relative to a restrictiveness of the first software component;

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 the second software component;

comparing a similarity or dissimilarity of the second software component with known good or bad software components; 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;

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

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.

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.

Assignments (8)
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 →
RELEASE OF SECURITY INTEREST Recorded May 9, 2022
From: SILICON VALLEY BANK (THE "BANK")
To: LOOKOUT, INC.
Reel/Frame 059909/0668 →
SECURITY INTEREST Recorded May 9, 2022
From: LOOKOUT, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 059909/0764 →
SECURITY INTEREST Recorded Feb 18, 2020
From: LOOKOUT, INC.
To: SILICON VALLEY BANK
Reel/Frame 051966/0282 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 16, 2019
From: LAMANTIA, MATTHEW JOHN JOSEPH; BUCK, BRIAN JAMES; EDWARDS, STEPHEN J.; ROBINSON, WILLIAM NEIL
To: LOOKOUT, INC.
Reel/Frame 050393/0512 →