# US 10,484,431 B2 · Dynamic application versioning system

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

- Number: US 10,484,431 B2
- Document ID: US10484431B2
- Status: Granted
- Kind: B2
- Application number: 16/193,729
- Filed: 2018-11-16
- Published: 2019-03-21
- Granted: 2019-11-19
- Earliest claimed: 2016-01-28
- Assignees: ADP, Inc.
- Applicants: Adp, LLC
- Inventors: Alvaro Russo, Jr.; Dmitri Snytkine; Hanwoong Darren Cho; Donna M. Altamura; Tushar S. Sheth; Michael Justin Brauman; Steven J. Roth; Vincent Civetta; Steven F. Bergamini
- Web page: https://patentgrep.com/patent/US10484431B2

## CPC

- H04L 67/04: specially adapted for terminals or networks with limited capabilities; specially adapted for terminal portability
- H04L 63/0876: {based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint}
- H04L 63/20: {for managing network security; network security policies in general (filtering policies H04L63/0227)}
- H04L 67/1097: for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
- H04L 67/125: involving control of end-device applications over a network
- H04L 67/306: User profiles
- H04L 67/60: Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources (admission control or resource allocation H04L47/70)
- H04W 12/068: {using credential vaults, e.g. password manager applications or one time password [OTP] applications}
- H04W 12/08: Access security
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- H04W: WIRELESS COMMUNICATION NETWORKS (broadcast communication H04H; communication systems using wireless links for non-selective communication, e.g. wireless extensions H04M1/72)

## Abstract

A computer system authenticates a user of a mobile application. In response to authenticating the user, the computer identifies a user profile for the user. The user profile includes a current application state for the mobile application. The computer then selects an application version based on applying a set of rules to the current application state. The computer then sends a response to the mobile device indicating the selected application version, enabling performing an operation for the organization based on the selected version for the application selectively enabling access to services provided by the organization for people.

## Claims

### Claim 1

A method for controlling presentation of a mobile application on a mobile device, the method comprising: receiving, by an application server, a request from the mobile device to present the mobile application; identifying, by the application server, a user profile for a user of the mobile device, the user profile comprising a current application state of the mobile application; determining whether the user profile is one of a prohibited subset of profiles for a particular version of a set of application versions; selecting, by the application server, an application version for the mobile application from the set of application versions for the mobile application on the mobile device based on application of a set of rules to the current application state indicated in the user profile, wherein the set of rules comprises a rule for determining an eligibility of the user for one of the set of application versions, wherein the rule for determining the eligibility of the user prohibits the selected application version from being the particular version of the set of application versions; and sending, by the application server, a response to the mobile device, the response indicating to the mobile device to present the selected application version of the mobile application to the user.

### Claim 2 (depends on 1)

The method of claim 1 further comprising:
subsequent to sending the response to the mobile device, identifying a target application state of the mobile application based on the application of the set of rules to the current application state; and
setting the current application state equal to the target application state.

### Claim 3 (depends on 1)

The method of claim 1, wherein the set of rules further comprises:
a rule for determining a preference of the user for one of the set of application versions, and a rule requiring one of the set of applications versions requirement by an application manager.

### Claim 4 (depends on 1)

The method of claim 1, wherein the mobile application further comprises a number of services, wherein the user profile is associated with a subset of the number of services, wherein selecting an application version from a set of application versions based on an application of a set of rules to the current application state further comprises:
determining the subset of the number of services associated with the user profile; and
determining which of the set of application versions supports the subset of the number of services; wherein
the rule for determining the eligibility of the user for one of the set of application versions requires the selected application version to support the subset of the number of services.

### Claim 5 (depends on 1)

The method of claim 1, wherein the mobile application on the mobile device comprises:
all of the set of application versions for the mobile application, wherein the set of application versions is a plurality of application versions for the mobile application.

### Claim 6 (depends on 5)

The method of claim 5, wherein each of the set of application versions is a first set and comprises a number of bytes within the mobile application, the method further comprising:
receiving an update to the first set of applications versions for the mobile application on the mobile device, wherein the update includes a new version of the mobile application and forms a second set of application versions.

### Claim 7 (depends on 6)

The method of claim 6, wherein the update does not change the number of bytes within the mobile application for the first set of application versions of the mobile application.

### Claim 8

A computer system comprising: a hardware processor; an application manager, in communication with the hardware processor and executing on an application server, wherein the application manager: receives a request from a mobile device to present a mobile application; identifies a user profile for a user of the mobile device, the user profile comprising a current application state of the mobile application; determines the user profile is one of a prohibited subset of profiles for a particular version of a set of application versions; selects an application version for the mobile application from the set of application versions for the mobile application on the mobile device based on application of a set of rules to the current application state indicated in the user profile, wherein the set of rules comprises a rule for determining an eligibility of the user for one of the set of application versions, wherein the rule for determining the eligibility of the user prohibits the selected application version from being the particular version of the set of application versions; and sends a response to the mobile device, the response indicating to the mobile device to present the selected application version of the mobile application to the user.

### Claim 9 (depends on 8)

The computer system of claim 8, wherein the application manager:
identifies a target application state of the mobile application subsequent to sending the response to the mobile device, wherein the target application state is based on the application of the set of rules to the current application state; and
sets the current application state equal to the target application state.

### Claim 10 (depends on 8)

The computer system of claim 8, wherein the set of rules further comprises a rule for determining a preference of the user for one of the set of application versions, and a rule requiring one of the set of applications versions requirement by the application manager.

### Claim 11 (depends on 8)

The computer system of claim 8, wherein the mobile application further comprises a number of services and the user profile is associated with a subset of the number of services; and
wherein in selecting an application version from a set of application versions based on an application of a set of rules to the current application, the application manager:
determines the subset of the number of services associated with the user profile; and
determines which of the set of application versions supports the subset of the number of services; wherein
the rule for determining the eligibility of the user for one of the set of application versions requires the selected application version to support the subset of the number of services.

### Claim 12 (depends on 8)

The computer system of claim 8, wherein the mobile application on the mobile device comprises:
all of the set of application versions for the mobile application, wherein the set of application versions is a plurality of application versions for the mobile application.

### Claim 13 (depends on 12)

The computer system of claim 12, wherein each of the set of application versions is a first set and comprises a number of bytes within the mobile application, and wherein the application manager:
receives an update to the first set of applications versions for the mobile application on the mobile device, wherein the update includes a new version of the mobile application and forms a second set of application versions.

### Claim 14 (depends on 13)

The computer system of claim 13, wherein the update does not change the number of bytes within the mobile application for the first set of application versions of the mobile application.

### Claim 15

A computer program product for controlling presentation of a mobile application on a mobile device, the computer program product comprising: a non-transitory computer readable storage media; program code, stored on the non-transitory computer readable storage media, for receiving a request from the mobile device to present the mobile application; program code, stored on the non-transitory computer readable storage media, for identifying a user profile for a user of the mobile device, the user profile comprising a current application state of the mobile application; program code, stored on the non-transitory computer readable storage media, for determining whether the user profile is one of a prohibited subset of profiles for a particular version of a set of application versions; program code, stored on the non-transitory computer readable storage media, for selecting an application version for the mobile application from the set of application versions for the mobile application on the mobile device based on application of a set of rules to the current application state indicated in the user profile, wherein the set of rules comprises a rule for determining an eligibility of the user for one of the set of application versions, wherein the rule for determining the eligibility of the user prohibits the selected application version from being the particular version of the set of application versions; and program code, stored on the non-transitory computer readable storage media, for sending a response to the mobile device, the response indicating to the mobile device to present the selected application version of the mobile application to the user.

### Claim 16 (depends on 15)

The computer program product of claim 15, further comprising:
program code, stored on the non-transitory computer readable storage media, for identifying a target application state of the mobile application based on the application of the set of rules to the current application state, wherein the fifth program code is executed subsequent to the fourth program code; and
program code, stored on the non-transitory computer readable storage media, for setting the current application state equal to the target application state.

### Claim 17 (depends on 15)

The computer program product of claim 15, wherein the set of rules further comprises:
rule for determining a preference of the user for one of the set of application versions, and a rule requiring one of the set of applications versions requirement by an application manager.

### Claim 18 (depends on 15)

The computer program product of claim 15, wherein the mobile application further comprises a number of services, wherein the user profile is associated with a subset of the number of services, wherein the program code further comprises:
program code for determining the subset of the number of services associated with the user profile; and
program code for determining which of the set of application versions supports the subset of the number of services; wherein
the rule for determining and the eligibility of the user for one of the set of application versions requires the selected application version to support the subset of the number of services.

### Claim 19 (depends on 15)

The computer program product of claim 15, wherein the mobile application on the mobile device comprises all of the set of application versions for the mobile application, wherein the set of application versions is a plurality of application versions for the mobile application.

### Claim 20 (depends on 19)

The computer program product of claim 19, wherein each of the set of application versions is a first set and comprises a number of bytes within the mobile application, the computer program product further comprising:
program code, stored on the non-transitory computer readable storage medium, for receiving an update to the first set of applications versions for the mobile application on the mobile device, wherein the update includes a new version of the mobile application and forms a second set of application versions.

### Claim 21 (depends on 20)

The computer program product of claim 20, wherein the update does not change the number of bytes within the mobile application for the first set of application versions of the mobile application.
