# US 10,372,436 B2 · Systems and methods for maintaining operating consistency for multiple users during firmware updates

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

- Number: US 10,372,436 B2
- Document ID: US10372436B2
- Status: Granted
- Kind: B2
- Application number: 15/673,886
- Filed: 2017-08-10
- Published: 2019-02-14
- Granted: 2019-08-06
- Earliest claimed: 2017-08-10
- Assignees: Lenovo Enterprise Solutions (Singapore) Pte. Ltd.
- Applicants: Lenovo Enterprise Solutions (Singapore) Pte. Ltd.
- Inventors: Jimmie Lee Brundidge; John Joseph Hedderman; Shekhar Joshi
- Web page: https://patentgrep.com/patent/US10372436B2

## CPC

- G06F 8/65: Updates (security arrangements therefor G06F21/57)
- G06F 8/654: using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
- G06F 16/2365: {Ensuring data consistency and integrity}
- G06Q 10/101: Collaborative creation, e.g. joint development of products or services
- G06F 15/173: using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F 16/258: {Data format conversion from or to a database}
- 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)
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Systems and methods for maintaining operating consistency for multiple users during firmware updates. According to an aspect, a method includes receiving, at a predetermined time interval, a request from one or more users of an application to carry out a result on a computing device. The method also includes analyzing a plurality of sessions of the application on the computing device servicing one or more users. The method also includes determining if one of the plurality of sessions contains an updated data. Further, the method includes creating at least one of a plurality of consistency groups based on the updated data. Further, the method includes updating, after the predetermined time interval, the application based on the at least one of the plurality of consistency groups.

## Claims

### Claim 1

A method comprising:
receiving, at a predetermined time interval, a request from one or more users of an application to carry out a result on a computing device;
analyzing a plurality of sessions of the application on the computing device servicing one or more users;
determining if one of the plurality of sessions contains an updated data;
creating at least one of a plurality of consistency groups based on the updated data;
updating, after the predetermined time interval, the application based on the at least one of the plurality of consistency groups;
leaving the application by an initial master session;
requesting, by a follower session, for the updated data from the at least one of the plurality of consistency groups;
determining if the at least one of the plurality of consistency groups contains the updated data;
in response to determining that the at least one of the plurality of consistency groups contains the updated data, promoting the follower session to become a new master session;
saving the updated data from the new master session for consumption by at least one of another follower session to carry out the result on the computing device; and
relegating the initial master session to a status as one of the other follower session upon a return of the initial master session into the application.

### Claim 2 (depends on 1)

The method of claim 1, wherein the computing device comprises at least one of a processor and memory and a user interface.

### Claim 3 (depends on 1)

The method of claim 1, wherein the plurality of sessions comprises of a master session and the at least one of a follower session.

### Claim 4 (depends on 1)

The method of claim 1, wherein the result on the computing device comprises one of a firmware update and a page update.

### Claim 5 (depends on 1)

The method of claim 1, wherein analyzing a plurality of sessions comprises analyzing an active session.

### Claim 6 (depends on 1)

The method of claim 1, wherein determining if one of the plurality of sessions contains the updated data comprises creating a master session based on the one of the plurality of sessions containing the updated data.

### Claim 7 (depends on 1)

The method of claim 1, wherein determining if one of the plurality of sessions contains the updated data comprises of evaluating a difference in a data between a master session and the data from the computing device.

### Claim 8 (depends on 1)

The method of claim 1, wherein creating the at least one of the plurality of consistency groups comprises of creating a master session and at least one of a follower session.

### Claim 9 (depends on 1)

The method of claim 1, wherein updating the application based on the at least one of the plurality of consistency groups comprises having the at least one of the plurality of consistency groups keep the plurality of sessions in sync with one another.

### Claim 10 (depends on 1)

The method of claim 1, wherein updating the application based on the at least one of the plurality of consistency groups comprises having the at least one of the plurality of consistency groups manage a processing and a presenting of the updated data to the at least one of the plurality of sessions.

### Claim 11 (depends on 1)

The method of claim 1, further comprising:
creating a list of data to be sent to a user interface of the computing device at the predetermined time interval;
determining whether the list of data contains the updated data;
in response to determining that the list contains the updated data, creating a master session; and
saving the updated data from the master session for consumption by at least one of a follower session to carry out the result on the computing device.

### Claim 12 (depends on 1)

The method of claim 1, further comprising:
receiving, at the predetermined time interval, a request from at least one of a follower session for the updated data from a master session;
obtaining, by at least one of the follower session, the updated data from the master session; and
consuming the updated data by at least one of the follower session to carry out the result on the computing device.

### Claim 13 (depends on 1)

The method of claim 1, further comprising:
determining if a session contains a threshold of consistency groups;
in response to determining that the session contains the threshold of consistency groups, removing the session from an active session status; and
placing the session on an inactive session status.

### Claim 14 (depends on 1)

The method of claim 1, further comprising:
determining if a session is on an inactive session status for a predetermined amount of time; and
in response to determining that the session is on the inactive session status for the predetermined amount of time, updating an entire application upon a return of the session to an active session status rather than updating based on the at least one of the plurality of consistency groups.

### Claim 15 (depends on 1)

The method of claim 1, further comprising;
determining by a master session of the updated data to present to the one of the plurality of sessions; and
following of the master session by at least one of a follower session.

### Claim 16

A computing device comprising:
a user interface; and
an input manager comprising at least one of a processor and memory to:
receive, at a predetermined time interval, a request from one or more users of an application to carry out a result on a computing device;
analyze a plurality of sessions of the application on the computing device servicing one or more users;
determine if one of the plurality of sessions contains an updated data;
create at least one of a plurality of consistency groups based on the updated data;
update, after the predetermined time interval, the application based on the at least one of the plurality of consistency groups;
leave the application by an initial master session;
request, by a follower session, for the updated data from the at least one of the plurality of consistency groups;
determine if at least one of the plurality of consistency groups contains the updated data;
in response to determining that the at least one of the plurality of consistency groups contains the updated data, promote the follower session to become a new master session;
save the updated data from the new master session for consumption by at least one of another follower session to carry out the result on the computing device; and
relegate the initial master session to a status as one of the other follower session upon a return of the initial master session into the application.
