IP Library › Granted Patent US 12,399,807
Granted Patent B2
US 12,399,807 · App. 17/409,187 · Granted Aug 26, 2025

Candidate program release evaluation

Inventors: Ben Drebing (New York, NY); Chuck Doerr (New York, NY)
Assignee: Here Enterprise Inc.
G06F11/3688G06F8/61
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,399,807
App. No.
17/409,187
Granted
Aug 26, 2025
Kind
B2
Abstract

A computing system may implement a content delivery system to communicate to a plurality of client devices an indication to install a candidate program. The indication causes each client to download and execute the candidate program in a health-check mode to execute a health-check. Each client device executes the candidate program in health-check mode that includes one or more compatibility tests to generate a result associated with the one or more compatibility tests. The client device generates a test report associated with the results to upload to the content delivery system for analysis.

Claims (66)

1. A method, comprising:

transmitting via wired or wireless infrastructure to a resident program installed on each of a plurality of client devices, by one or more processors, an indication to install a candidate program, the candidate program comprising a different version of the resident program installed on each of the plurality of client devices;

causing the resident program included on each of the plurality of client devices, in response to receiving the indication, to download and launch the candidate program in a health-check mode to execute a health-check to determine compatibility of the candidate program with each client device, wherein to execute the health-check at each client device comprises:

executing, by the candidate program, one or more compatibility tests in background of the resident program running on a same client device as the candidate program, the one or more compatibility tests to determine the compatibility of the candidate program with the same client device, wherein the one or more compatibility tests include testing access to a uniform resource locator comprising an endpoint for license verification; and

generating, at each of the plurality of client devices, a result associated with the one or more compatibility tests;

receiving, from each of the plurality of client devices, a test report based on the result, respectively;

analyzing, by the one or more processors, the test report from each of the plurality of client devices to determine a set of compatible client devices from the plurality of client devices and a set of incompatible client devices from the plurality of client devices; and

communicating, automatically and without user intervention, to the resident program of each of the compatible client devices an indication that causes installation of the candidate program in a runtime mode when a percentage of compatible client devices exceeds a threshold value.

2. The method of claim 1 , further comprising each client device executing the one or more compatibility tests in isolation of normal operation of the client device.

3. The method of claim 1 , wherein analyzing each test report comprises:

identifying, by the one or more processors, a cause of failure from each test report of the set of incompatible client devices;

generating a failure profile indicating proportions of failures;

comparing the failure profile to a failure profile of prior candidate evaluations to identifier an outlier client device; and

generating a graphical user interface to display the cause of failure for one or more of the incompatible client devices and the outlier client device.

4. The method of claim 1 , wherein analyzing each test report comprises:

generating test data based on analysis of each test report; and

generating a graphical user interface to display the test data associated with each compatible client devices.

5. The method of claim 1 , further comprising:

receiving a timeout indication from one or more of the plurality of client devices when the health-check at the one or more client devices fails to generate a result.

6. The method of claim 1 , further comprising:

receiving an install indication from a client device that the candidate program was automatically installed in the runtime mode in response to releasing the candidate program to the client device.

7. The method of claim 6 , further comprising initiating, automatically, removal of the resident program on the client device in response to receiving the install indication from the client device.

8. The method of claim 1 , wherein the one or more compatibility tests include testing read/write access to a file system location for storing log files or asset files.

9. A system, comprising:

a memory; and

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

transmit via wired or wireless infrastructure to a resident program installed on each of a plurality of client devices, by one or more processors, an indication to install a candidate program, the candidate program comprising a different version of the resident program installed on each of the plurality of client devices;

cause the resident program included on each of the plurality of client devices, in response to receiving the indication, the plurality of client devices comprising a client device memory and a client processing device, operatively coupled to the client device memory, to:

download and launch the candidate program in a health-check mode to execute a health-check to determine compatibility of the candidate program with each client device, wherein to execute the health-check each the client processing device further to:

execute, by the candidate program, one or more compatibility tests in background of the resident program running on a same client device as the candidate program, the one or more compatibility tests to determine the compatibility of the candidate program with the same client device, wherein the one or more compatibility tests include testing access to a uniform resource locator comprising an endpoint for license verification; and

generate, at each of the plurality of client devices, a result associated with the one or more compatibility tests;

the processing device further to receive, from each of the plurality of client devices, a test report based on the result;

analyze, by the one or more processors, the test report from each of the plurality of client devices to determine a set of compatible client devices from the plurality of client devices and a set of incompatible client devices from the plurality of client devices; and

communicating, automatically and without user intervention, to the resident program of each of the compatible client devices an indication that causes installation of the candidate program in a runtime mode when a percentage of compatible client devices exceeds a threshold value.

10. The system of claim 9 , wherein the client processing device is further to execute the one or more compatibility tests in isolation of normal operation of the client device operations.

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

identify a cause of failure from each test report of the set of incompatible client devices;

generate a failure profile indicating proportions of failures;

compare the failure profile to a failure profile of prior candidate evaluations to identifier an outlier client device; and

generate a graphical user interface to display the cause of failure for one or more of the incompatible client devices and the outlier client device.

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

generate test data based on analysis of each test report; and

generate a graphical user interface to display the test data associated with each compatible client devices.

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

receive a timeout indication from one or more of the plurality of client devices when the health-check at the one or more client devices fails to generate a result.

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

receive an install indication from a client device that the candidate program was automatically installed in the runtime mode in response to releasing the candidate program to the client device.

15. The system of claim 14 , wherein the processing device is further to initiate, automatically, removal of the resident program on the client device in response to the install indication received from the client device.

16. The system of claim 9 , wherein the one or more compatibility tests include testing read/write access to a file system location for storing log files or asset files.

17. A method, comprising:

receiving via wired or wireless infrastructure, on one or more processors of a client device executing a resident program installed on the client device, an indication to install a candidate program, the candidate program comprising a different version of the resident program installed on the client device; and

installing and launching the candidate program in a health-check mode to execute a health-check to determine compatibility of the candidate program with the client device, wherein executing in the health-check mode comprises:

executing, by the candidate program to generate a result, one or more compatibility tests in background of the resident program running on the client device, the one or more compatibility tests to determine the compatibility of the candidate program with the client device, wherein the one or more compatibility tests include testing access to a uniform resource locator comprising an endpoint for license verification;

generating, at the client device, a test report based on the result associated with the one or more compatibility tests;

uploading via the wired or the wireless infrastructure the test report to a content delivery system; and

when the content delivery system determines a set of compatible client devices includes the client device and the set of compatible client devices exceeds a threshold percentage of compatible client devices:

receiving, automatically and without user interaction at the resident program, an indication to install the candidate program in a runtime mode,

installing the candidate program in the runtime mode in response to the indication received at the resident program;

transmitting an install indication to the content delivery system in response to successfully installing the candidate program in the runtime mode, and

uninstalling the resident program in response to successfully installing the candidate program in the runtime mode.

18. The method of claim 17 , further comprising:

monitoring, by the one or more processors, the candidate program running in the health-check mode; and

ending execution of the candidate program when it is determined the candidate program is unstable.

19. The method of claim 18 , further comprising:

ending execution of the candidate program when it is determined the candidate program failed to complete execution of the health-check by exceeding a timeout threshold.

20. The method of claim 17 , further comprising the client device executing the one or more compatibility tests in isolation with respect to normal operation of the client device.

Assignments (2)
CHANGE OF NAME Recorded Jul 3, 2024
From: OPENFIN INC.
To: HERE ENTERPRISE INC.
Reel/Frame 068122/0430 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 23, 2021
From: DREBING, BEN; DOERR, CHUCK
To: OPENFIN INC.
Reel/Frame 057259/0239 →
Continuity (2)
Provisional Application 63070152 · Aug 25, 2020
Related Publication 20220066917A1 · Mar 3, 2022
References Cited (18)
US 9146720B1 · McGilliard · 2015 [cited by examiner]
US 10585656B1 · Das · 2020 [cited by examiner]
US 10635566B1 · Talluri · 2020 [cited by examiner]
US 10936468B1 · Ochlak · 2021 [cited by examiner]
US 10956242B1 · Kumar · 2021 [cited by examiner]
US 20140325282A1 · Wu · 2014 [cited by examiner]
US 20160162275A1 · Morley · 2016 [cited by examiner]
US 20170115978A1 · Modi · 2017 [cited by examiner]
US 20190034320A1 · Stokes · 2019 [cited by examiner]
US 20200183806A1 · Lin · 2020 [cited by examiner]
US 20200293496A1 · Arakawa · 2020 [cited by examiner]
EP 3579101A2 · 2019 [cited by applicant]
International Search Report and Written Opinion on the Patentability of Application No. PCT/US2021/047298 Mailed Dec. 13, 2021, 18 pages. [cited by applicant]
Smart John Ferguson: “Jenkins The Definitive Guide”, Jan. 1, 2011, 417 pages. [cited by applicant]
Andrew Pavlo et al: “The NMI Build & Test Laboratory: Continuous Integration Framework for Distributed Computing Software”, Usenix, The Advanced Computing Systems Association, Feb. 25, 2019, 11 pages. [cited by applicant]
Singh Charanjot et al: “Comparison of Different CI/CD Tools Integrated with Cloud Platform”, 2019 9th International Conference on Cloud Computing, Data Science & Engineering (Confluence), Jan. 10, 2019, 6 pages. [cited by applicant]
Birk Alexander et al: “Eine Einfuhrung in Continuous Delivery, Teil 3: Acceptance Test STage”, Nov. 14, 2014, 10 pages. [cited by applicant]
European Patent Office; Office Action issued for Application No. EP 21773676.8 dated Aug. 2, 2024; 11 pages. [cited by applicant]