IP Library Granted Patent US 10,509,639
Granted Patent B2
US 10,509,639 · App. 14/729,579 · Granted Dec 17, 2019

Automatic software-update framework

Inventors: Jim Benge (Livermore, CA); Richard Frank (Pleasanton, CA); Don Sheffield (Palm Harbor, FL); Doug Baron (Centreville, VA)
Assignee: Rimini Street, Inc.
G06F8/65H04L67/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 10,509,639
App. No.
14/729,579
Granted
Dec 17, 2019
Kind
B2
Abstract

An automation framework for providing updates in a distributed environment includes various elements. The framework provides tasks to a client environment, such as a software update. An update can be developed and tested for one client environment. That update can be reduced to a set of data that can be used to create updates for other client environments that include a same version of the program. In addition, a respective script can be generated for each client environment based on the specific client environment.

Claims (21)

1. Non-transitory, computer-readable storage media storing information that, when executed by one or more computing devices, performs operations for updating software in a distributed computing environment comprising:

automatically determining, by an automated task manager running in a client environment of one or more client devices, whether a task is queued up by sending a request to a secure account stored on a secure network-accessible server in a server environment;

receiving, based on the determining, the task from the secure network accessible server hosting the secure account, wherein the task is received by the task manager running in the client environment and wherein the task includes an update to be applied to a software program running in the client environment;

routing the task to one or more handler programs that are running in the client environment and that update the software program by:

creating a before-update folder and an after-update folder in the client environment;

populating the before-update folder with a first version of the software pro-gram that is to be updated;

populating the after-update folder with a second version of the software pro-gram that is to be updated and that is substantially similar to the first version of the software program;

transforming the second version of the software program into an updated software program by transforming the second version of the software program to include the update;

generating a data set by comparing the first version of the software program in the before-update folder to the updated software program in the after-update folder and by identifying one or more differences between the first version and the second version, the one or more differences being included in the data set, which does not include the first version and the second version of the software program, and

transmitting the data set to the secure network-accessible server in the server environment;

generating by the one or more handler programs a message that describes whether the task was successfully completed;

communicating the message from the one or more handler programs to the task manager; and

sending the message to the secure network-accessible server to provide a status of the task.

2. The computer-readable media of claim 1 further comprising, calculating a hash value for the first version of the software program and transmitting the hash value to the server running in the server environment.

3. The computer-readable media of claim 1 , wherein the operations further comprise encoding the data set to create an encoded data set, which is transmitted to the secure network-accessible server.

4. A system of computing components that automatically updates a computer software program in a distributed environment comprising:

a server-side computing device having a processor coupled to computer-readable storage media, which stores a secure account that is maintained in a server environment and that stores a task to be carried out in a client environment the task including an update of a software program running in the client environment;

a client-side, computer-readable storage media storing a client-side program file structure that is maintained in the client environment and that stores one or more code files, which include program code executed to run the software program; a server-side, computer-readable storage media storing a server-side pro-gram file structure that is maintained in a file share of the server environment and that substantially mirrors an organization of the client-side program file structure, the server-side program file structure storing one or more hash files representing the program code, such that the server-side program file structure does not maintain a copy of the program code;

an automatic task manager that runs on a client-side computing device in the client environment and that automatically retrieves the task by sending a request to the secure account, wherein the automatic task manager determines a task is available, and retrieves the task based on the determining;

one or more handlers running in the client environment that receive the task from the automatic task manager and that carry out the task in the client environment, wherein the one or more handlers provide a message that indicates whether task was successfully completed and that is provided to the secure account; and

a task-monitor module running in the server environment that picks up the message from the secure account and that communicates the message to a task-monitor graphical user interface, wherein the task-monitor graphical user interface displays a status of the task indicating whether the task was successfully completed in the client environment and displays a selectable link that, when selected by an input device, displays content of the message.

Assignments (5)
PATENT SECURITY AGREEMENT Recorded Jul 20, 2021
From: RIMINI STREET, INC.
To: CAPITAL ONE, NATIONAL ASSOCIATION, AS AGENT
Reel/Frame 056927/0099 →
SECURITY INTEREST Recorded Jul 19, 2018
From: RIMINI STREET, INC.
To: VICTORY PARK MANAGEMENT, LLC
Reel/Frame 046406/0151 →
RELEASE OF PATENT SECURITY INTEREST RECORDED AT REEL 039153/FRAME 0091 Recorded Jul 19, 2018
From: CORTLAND CAPITAL MARKET SERVICES LLC
To: RIMINI STREET, INC.
Reel/Frame 046593/0477 →
PATENT SECURITY AGREEMENT Recorded Jun 24, 2016
From: RIMINI STREET, INC.
To: CORTLAND CAPITAL MARKET SERVICES LLC, AS COLLATERAL AGENT
Reel/Frame 039153/0091 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 24, 2015
From: BENGE, JIM; FRANK, RICHARD; SHEFFIELD, DON; BARON, DOUG
To: RIMINI STREET, INC.
Reel/Frame 035892/0894 →
Continuity (2)
Provisional Application 62007918 · Jun 4, 2014
Related Publication 20150355896A1 · Dec 10, 2015