IP Library Granted Patent US 12,073,257
Granted Patent B2
US 12,073,257 · App. 17/216,392 · Granted Aug 27, 2024

Provisioning pluggable smart services for browser-based smart editing tools

Inventors: Guilherme H. Caponetto (Campinas, BR); Eder Ignatowicz (Cambridge, MA); Alexandre Porcelli Bakos (Westford, MA)
Assignee: Red Hat, Inc.
G06F9/5072G06F9/5005G06F9/5077H04L67/51G06F2209/503
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,073,257
App. No.
17/216,392
Granted
Aug 27, 2024
Kind
B2
Abstract

Systems and methods for providing optional services for browser-based smart editing tools. In one implementation, a client extension on a client device receives a request to perform a function of a service. The client extension identifies an execution parameter for the service. The client extension determines a local service availability by evaluating a logical condition comprising the execution parameter. In view of the local service availability, the client extension causes the function of the service to be executed either on one of the client device or on a server device.

Claims (65)

1. A method, comprising:

receiving, by a client extension on a client device, a request to perform a function of a service;

identifying an execution parameter of the service, wherein the execution parameter comprises a parameter associated with computing resource requirements;

determining a local service availability by evaluating, by the client extension, a logical condition comprising the execution parameter;

identifying a first computing resource available on the client device and a second computing resource available on a server device;

responsive to determining that a first parameter associated with the first computing resource available on the client device exceeds the parameter associated with the computing resource requirements, and that the first parameter associated with the first computing resource available on the client device does not exceed a second parameter associated with the second computing resource available on the server device, determining that the local service availability satisfies a criterion, wherein the first parameter and the second parameter include two of: an amount of disk space, an amount of memory, or a number of central processing units (CPUs); and

responsive to determining that the local service availability satisfies the criterion, causing the function of the service to be executed on the server device.

2. The method of claim 1 , wherein the execution parameter reflects the computing resource requirements comprising at least one of: the amount of disk space, the amount of memory, or the number of CPUs.

3. The method of claim 1 , wherein the execution parameter of the service is exposed by an application programming interface (API).

4. The method of claim 2 , further comprising:

responsive to determining that the first parameter associated with the first computing resource available on the client device does not exceed the parameter associated with the computing resource requirements, determining that the local service availability satisfies the criterion; and

responsive to determining that the first parameter associated with the first computing resource available on the client device exceeds the parameter associated with the computing resource requirements:

comparing the first parameter associated with the first computing resource available on the client device to the second parameter associated with the second computing resource available on the server device; and

responsive to determining, based on the comparing, that the first parameter associated with the first computing resource available on the client device exceeds the second parameter associated with the second computing resource available on the server device, determining that the local service availability does not satisfy the criterion.

5. The method of claim 1 , further comprising:

accessing an endpoint associated with the service;

transmitting, to the endpoint, the request to perform the function of the service;

receiving a result from the endpoint; and

transmitting the result to the client extension.

6. The method of claim 5 , wherein the endpoint associated with the service is on a cloud computing environment.

7. The method of claim 5 , wherein in response to determining that the local service availability does not satisfy the criterion, causing the function of the service to be executed on the client device, the endpoint associated with the service is on the client device.

8. A system comprising:

a memory; and

a processing device operatively coupled to the memory, the processing device to:

receive, by a client extension on a client device, a request to perform a function of a service;

identify an execution parameter of the service, wherein the execution parameter comprises a parameter associated with computing resource requirements;

determine a local service availability by evaluating, by the client extension, a logical condition comprising the execution parameter;

identify a first computing resource available on the client device and a second computing resource available on a server device;

responsive to a determination that a first parameter associated with the first computing resource available on the client device exceeds the parameter associated with the computing resource requirements, and that the first parameter associated with the first computing resource available on the client device does not exceed a second parameter associated with the second computing resource available on the server device, determine that the local service availability satisfies a criterion, wherein the first parameter and the second parameter include two of: an amount of disk space, an amount of first memory, or a number of central processing units (CPUs); and

responsive to the determination that the local service availability satisfies the criterion, cause the function of the service to be executed on the server device.

9. The system of claim 8 , wherein the execution parameter reflects the computing resource requirements comprising at least one of: the amount of disk space, the amount of first memory, or the number of central processing units CPUs.

10. The system of claim 8 , wherein the execution parameter of the service is exposed by an application programming interface (API).

11. The system of claim 9 , wherein the processing device is further to:

responsive to a determination that the first parameter associated with the first computing resource available on the client device does not exceed the parameter associated with the computing resource requirements, determine that the local service availability satisfies the criterion; and

responsive to the determination that the first parameter associated with the first computing resource available on the client device exceeds the parameter associated with the computing resource requirements:

compare the first parameter associated with the first computing resource available on the client device to the second parameter associated with the second computing resource available on the server device; and

responsive to a determination that the first parameter associated with the first computing resource available on the client device exceeds the second parameter associated with the second computing resource available on the server device, determine, based on the comparison, that the local service availability does not satisfy the criterion.

12. The system of claim 8 , wherein the processing device is further to:

access an endpoint associated with the service;

transmit, to the endpoint, the request to perform the function of the service;

receive a result from the endpoint; and

transmit the result to the client extension.

13. The system of claim 12 , wherein the endpoint associated with the service is on a cloud computing environment.

14. A non-transitory computer-readable storage medium comprising instructions that, when executed by a processing device, cause the processing device to:

receive, by a client extension on a client device, a request to perform a function of a service;

identify an execution parameter of the service, wherein the execution parameter comprises a parameter associated with computing resource requirements;

determine a local service availability by evaluating, by the client extension, a logical condition comprising the execution parameter;

identify a first computing resource available on the client device and a second computing resource available on a server device;

responsive to a determination that a first parameter associated with the first computing resource available on the client device exceeds the parameter associated with the computing resource requirements, and that the first parameter associated with the first computing resource available on the client device does not exceed a second parameter associated with the second computing resources available on the server device, determine that the local service availability satisfies a criterion, wherein the first parameter and the second parameter include two of: an amount of disk space, an amount of memory, or a number of central processing units (CPUs); and

responsive to the determination that the local service availability satisfies the criterion, cause the function of the service to be executed on the server device.

15. The non-transitory computer-readable storage medium of claim 14 , wherein the execution parameter reflects the computing resource requirements comprising at least one of: the amount of disk space, the amount of memory, or the number of CPUs.

16. The non-transitory computer-readable storage medium of claim 14 , wherein the execution parameter of the service is exposed by an application programming interface (API).

17. The non-transitory computer-readable storage medium of claim 15 , wherein the instructions, when executed by the processing device, cause the processing device further to:

responsive to a determination that the first parameter associated with the first computing resource available on the client device does not exceed the parameter associated with the computing resource requirements, determine that the local service availability satisfies the criterion; and

responsive to determining the determination that the first parameter associated with the first computing resource available on the client device exceeds the parameter associated with the computing resource requirements:

compare the first parameter associated with the first computing resource available on the client device to the second parameter associated with the second computing resource available on the server device; and

responsive to a determination that the first parameter associated with the first computing resource available on the client device exceeds the second parameter associated with the second computing resource available on the server device, determine, based on the comparison, that the local service availability does not satisfy the criterion.

18. The non-transitory computer-readable storage medium of claim 14 , wherein the instructions, when executed by the processing device, cause the processing device further to:

access an endpoint associated with the service;

transmit, to the endpoint, the request to perform the function of the service;

receive a result from the endpoint; and

transmit the result to the client extension.

19. The non-transitory computer-readable storage medium of claim 18 , wherein the endpoint associated with the service is on a cloud computing environment.

20. The non-transitory computer-readable storage medium of claim 18 , wherein the instructions, when executed by the processing device, cause the processing device further to:

in response to the determination that the local service availability does not satisfy the criterion, cause the function of the service to be executed on the client device, the endpoint associated with the service is on the client device.

Assignments (2)
CHANGE OF NAME Recorded Mar 3, 2026
From: RED HAT, INC.
To: RED HAT, LLC
Reel/Frame 074913/0759 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 29, 2021
From: CAPONETTO, GUILHERME H.; IGNATOWICZ, EDER; BAKOS, ALEXANDRE PORCELLI
To: RED HAT, INC.
Reel/Frame 055758/0637 →
Continuity (1)
Related Publication 20220308930A1 · Sep 29, 2022