# US 12,112,153 B2 · Environment establishment for a program in a server system

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,112,153 B2
- Document ID: US12112153B2
- Status: Granted
- Kind: B2
- Application number: 17/588,400
- Filed: 2022-01-31
- Published: 2023-08-03
- Granted: 2024-10-08
- Earliest claimed: 2022-01-31
- Assignees: Hewlett Packard Enterprise Development LP
- Applicants: Hewlett Packard Enterprise Development LP
- Inventors: Minal Ulhasrao Deshmukh; Suveer Nagendra; Senthil Kumar Thimmappa; Gouthami Kolla; Rajesh Ranganathan; Madhusuthanan Vikramaboopathi; Prakash Maiya; Siddhartha Gudgunti; Ankan Shrivastava
- Web page: https://patentgrep.com/patent/US12112153B2

## CPC

- G06F 8/60: Software deployment
- G06F 8/61: Installation
- H04L 67/34: {involving the movement of software or configuration parameters (network booting or remote initial program loading [RIPL] G06F9/4416)}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

In some examples, a system receives, from a requesting entity, input information relating to a program to be deployed on a server system. The system establishes, based on the input information, an environment in the server system, where the environment is based on interaction with a subsystem of the server system, the subsystem of the server system to support one or more of fault tolerance for the program or scalability of the program in the server system. After establishing the environment of the subsystem of the server system, the system sends response information to the requesting entity, the response information useable by the requesting entity to manage the program when executed in the server system.

## Claims

### Claim 1

A non-transitory machine-readable storage medium comprising instructions that upon execution cause a system to:
receive, from a requesting entity, a program input file for a program to be deployed on a server system, the program input file comprising a plurality of parameters, the plurality of parameters comprising a first parameter specifying a provision of fault tolerance for the program, a second parameter specifying a size of a memory heap for the program, a third parameter referring to a dependent program to be used by the program, the dependent program comprising a compiler, and a fourth parameter specifying an update or a restart of the program;
establish an environment in the server system by sending commands based on the program input file to the server system, wherein the establishing of the environment configures the program with the fault tolerance based on the first parameter, sets up the memory heap for the program according to the size specified by the second parameter, loads the compiler referred to by the third parameter, and updates or restarts the program according to the fourth parameter;
monitor, by a subsystem of the server system, an operation of the program in the environment;
in response to detecting a fault of the program, trigger, by the subsystem, failover of the program from a first computer node of the server system to a second computer node of the server system to provide the fault tolerance for the program; and
after establishing the environment in the server system, send response information to the requesting entity, the response information useable by the requesting entity to manage the program when executed in the server system.

### Claim 2 (depends on 1)

The non-transitory machine-readable storage medium of claim 1, wherein the program input file comprises a port parameter specifying a port number of a port, and wherein the instructions upon execution cause the system to:
deploy the program in the environment, wherein the program communicates with another entity over a network using the port having the port number specified by the port parameter.

### Claim 3 (depends on 1)

The non-transitory machine-readable storage medium of claim 1, wherein the receiving of the program input file and the establishing of the environment in the server system are performed by a program deployment engine in the server system.

### Claim 4 (depends on 1)

The non-transitory machine-readable storage medium of claim 1, wherein the program input file comprises a further parameter specifying a quantity of instances of the program to run in the server system, and wherein the instructions upon execution cause the system to:
deploy the quantity of instances of the program in the environment according to the further parameter input information.

### Claim 5 (depends on 4)

The non-transitory machine-readable storage medium of claim 4, wherein the quantity of instances of the program specified by the further parameter is a maximum quantity of instances of the program or a minimum quantity of instances of the program.

### Claim 6 (depends on 1)

The non-transitory machine-readable storage medium of claim 1, wherein the instructions upon execution cause the system to:
scale up or scale down a quantity of instances of the program in the server system based on a load in the server system.

### Claim 7 (depends on 1)

The non-transitory machine-readable storage medium of claim 1, wherein the instructions upon execution cause the system to:
deploy the program in the server system using program-specific information in the program input file.

### Claim 8 (depends on 7)

The non-transitory machine-readable storage medium of claim 7, wherein the program-specific information comprises a process name of the program and location information of a log for the program.

### Claim 9 (depends on 1)

The non-transitory machine-readable storage medium of claim 1, wherein the instructions upon execution cause the system to:
convert data in the program input file to a format for the subsystem.

### Claim 10 (depends on 9)

The non-transitory machine-readable storage medium of claim 9, wherein the format for the subsystem is according to a command line interface format.

### Claim 11 (depends on 1)

The non-transitory machine-readable storage medium of claim 1, wherein the response information is presentable in a user interface, and wherein the instructions upon execution cause the system to:
receive, from the user interface, an input controlling the program in the server system.

### Claim 12

A server system comprising:
a subsystem;
a processor; and
a non-transitory storage medium storing instructions executable on the processor to:
receive, from a requesting entity, a program input file for a program to be deployed on the server system, the program input file comprising a plurality of parameters, the plurality of parameters comprising a first parameter specifying a provision of fault tolerance for the program, a second parameter specifying a size of a memory heap for the program, a third parameter referring to a dependent program to be used by the program, the dependent program comprising a compiler, and a fourth parameter specifying an update or a restart of the program;
establish an environment in the server system by sending commands based on the program input file to the subsystem of the server system, wherein the establishing of the environment configures the program with the fault tolerance based on the first parameter, sets up the memory heap for the program according to the size specified by the second parameter, loads the compiler referred to by the third parameter, and updates or restarts the program according to the fourth parameter; and
after establishing the environment in the server system, deploy the program in a first computer node of the server system;
wherein the subsystem is configured to:
monitor an operation of the program in the first computer node; and
in response to detecting a fault of the program, trigger failover of the program from the first computer node of the server system to a second computer node of the server system to provide the fault tolerance for the program.

### Claim 13 (depends on 12)

The server system of claim 12, wherein the program input file comprises a port parameter specifying a port number of a port, and wherein the program communicates with another entity over a network using the port having the port number specified by the port parameter.

### Claim 14 (depends on 12)

The server system of claim 12, wherein the program input file comprises a further parameter specifying a quantity of instances of the program to run in the server system, and wherein the instructions are executable on the processor to:
deploy the quantity of instances of the program in the environment according to the further parameter.

### Claim 15 (depends on 14)

The server system of claim 14, wherein the quantity of instances of the program specified by the further parameter is a maximum quantity of instances of the program or a minimum quantity of instances of the program.

### Claim 16 (depends on 12)

The server system of claim 12, wherein the program input file comprises system-specific configuration information, and the instructions are executable on the processor to:
deploy the program in the environment according to the system-specific configuration information, the system-specific configuration information comprising location information of a log for the program.

### Claim 17 (depends on 12)

The server system of claim 12, wherein the instructions are executable on the processor to:
after establishing the environment in the server system, send response information to the requesting entity, the response information presentable in a user interface; and
receive, from the user interface, an input controlling the program in the server system.

### Claim 18

A method of a system comprising a hardware processor, comprising:
receiving, from a requesting entity, a program input file for a program to be deployed on a server system, the program input file comprising a plurality of parameters, the plurality of parameters comprising a first parameter specifying a provision of fault tolerance for the program, a second parameter specifying a size of a memory heap for the program, a third parameter referring to a dependent program to be used by the program, the dependent program comprising a compiler, and a fourth parameter specifying an update or a restart of the program;
establishing an environment in the server system by sending commands based on the program input file to a subsystem of the server system, wherein the establishing of the environment configures the program with the fault tolerance based on the first parameter, sets up the memory heap for the program according to the size specified by the second parameter, loads the compiler referred to by the third parameter, and updates or restarts the program according to the fourth parameter; and
after establishing the environment in the server system:
deploying the program in the environment,
sending response information to the requesting entity,
monitoring, by the subsystem, an operation of the program in the environment, and
in response to detecting a fault of the program, triggering failover of the program from a first computer node of the server system to a second computer node of the server system to provide the fault tolerance for the program.

### Claim 19 (depends on 18)

The method of claim 18, wherein the program input file comprises a port parameter specifying a port number of a port, and wherein the program communicates with another entity over a network using the port having the port number specified by the port parameter.
