# US 10,372,434 B1 · Apparatus, computer program, and method for communicating an update to a subset of devices

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

- Number: US 10,372,434 B1
- Document ID: US10372434B1
- Status: Granted
- Kind: B1
- Application number: 15/217,895
- Filed: 2016-07-22
- Granted: 2019-08-06
- Earliest claimed: 2016-07-22
- Assignees: Amdocs Development Limited
- Applicants: Amdocs Development Limited
- Inventors: Christophe Regis Jean-Jacques Michel; Pierre-Erwann Gouesbet; Jean-François Pierre Marie Greffier
- Web page: https://patentgrep.com/patent/US10372434B1

## CPC

- G06F 8/65: Updates (security arrangements therefor G06F21/57)
- G06F 11/3668: Testing of software
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

An apparatus, computer program, and method are provided for communicating an update to a subset of devices. In operation, information is received in association with a plurality of devices that have at least one application installed thereon. Further, an update for the at least one application is identified. Still yet, a subset of the plurality of devices is determined, based on the information. Such update for the at least one application is communicated to the subset of the plurality of devices.

## Claims

### Claim 1

A non-transitory computer readable medium storing computer executable instructions executable by a processor to perform a method comprising:
receiving application usage information associated with each device of a plurality of devices for an application installed thereon, the application usage information, which is selectively collected by an agent covering a group of applications, including:
identification of features of the application that are used by a user of the device,
errors in operation of the application on the device,
different application usage patterns, and
errors regarding software and hardware of the plurality of devices;
identifying an update for the application;
simulating, via at least one virtual device, each device of the plurality of devices to have the update for the application installed thereon;
testing, on the at least one virtual device, various types of usage of the application having the update;
determining, from the testing, one or more of the various types of usage of the application that each do not exhibit a threshold of detrimental effects and do not exhibit a lack of utility for the update;
defining applicability criteria for the update that indicates that the update is applicable to the determined one or more of the various types of usage of the application;
determining, from the application usage information received for the plurality of devices, a subset of the plurality of devices associated with application usage information that exhibits the one or more of the various types of usage of the application indicated by the applicability criteria defined for the update; and
responsive to determining the subset of the plurality of devices, causing the update for the application to be installed on each device in the subset of the plurality of devices by only distributing the update to the determined subset of the plurality of devices.

### Claim 2 (depends on 1)

The non-transitory computer readable medium of claim 1, wherein the application usage information further includes one or more configuration settings of the application.

### Claim 3 (depends on 1)

The non-transitory computer readable medium of claim 1, wherein the application usage information is received from at least one agent installed on each of the plurality of devices, and the update is communicated to the at least one agent installed on each of the subset of the plurality of devices.

### Claim 4 (depends on 1)

The non-transitory computer readable medium of claim 1, wherein the errors in operation of the application on the device include:
overload errors, and
errors resulting from deficient underlying hardware and software of the device, including screen resolution, network connection bandwidth, processing capacity, operating system limitations, and compatibility issues.

### Claim 5

A method, comprising:
receiving, utilizing at least one interface of a computer system, application usage information associated with each device of a plurality of devices for an application installed thereon, the application usage information, which is selectively collected by an agent covering a group of applications, including:
identification of features of the application that are used by a user of the device,
errors in operation of the application on the device;
different application usage patterns, and
errors regarding software and hardware of the plurality of devices;
identifying, by the computer system, an update for the application;
simulating, by the computer system via at least one virtual device, each device of the plurality of devices to have the update for the application installed thereon;
testing, by the computer system on the at least one virtual device, various types of usage of the application having the update;
determining, by the computer system from the testing, one or more of the various types of usage of the application that each do not exhibit a threshold of detrimental effects and do not exhibit a lack of utility for the update;
defining, by the computer system, applicability criteria for the update that indicates that the update is applicable to the determined one or more of the various types of usage of the application;
determining, by the computer system from the application usage information received for the plurality of devices, a subset of the plurality of devices associated with application usage information that exhibits the one or more of the various types of usage of the application indicated by the applicability criteria defined for the update; and
responsive to determining the subset of the plurality of devices, causing, utilizing the at least one interface of the computer system, the update for the application to be installed on each device in the subset of the plurality of devices by only distributing the update to the determined subset of the plurality of devices.

### Claim 6

An apparatus, comprising: a memory and
at least one server computer comprising a processor configured to:
receive application usage information associated with each device of a plurality of devices for an application installed thereon, the application usage information, which is selectively collected by an agent covering a group of applications, including:
identification of features of the application that are used by a user of the device,
errors in operation of the application on the device;
different application usage patterns, and
errors regarding software and hardware of the plurality of devices;
identify an update for the application;
simulate, via at least one virtual device, each device of the plurality of devices to have the update for the application installed thereon;
test, on the at least one virtual device, various types of usage of the application having the update;
determine, from the testing, one or more of the various types of usage of the application that each do not exhibit a threshold of detrimental effects and do not exhibit a lack of utility for the update;
define applicability criteria for the update that indicates that the update is applicable to the determined one or more of the various types of usage of the application;
determine, from the application usage information received for the plurality of devices, a subset of the plurality of devices associated with application usage information that exhibits the one or more of the various types of usage of the application indicated by the applicability criteria defined for the update; and
responsive to determining the subset of the plurality of devices, cause the update for the application to be installed on each device in the subset of the plurality of devices by only distributing the update to the determined subset of the plurality of devices.
