# US 2014/0156860 A1 · Incrementally Changing the Availability of a Feature

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

- Number: US 2014/0156860 A1
- Document ID: US20140156860A1
- Status: Published application
- Kind: A1
- Application number: 14/175,246
- Filed: 2014-02-07
- Published: 2014-06-05
- Earliest claimed: 2009-01-13
- Assignees: Microsoft Corporation
- Applicants: Microsoft Corporation
- Inventors: Greg S. Friedman
- Web page: https://patentgrep.com/patent/US20140156860A1

## CPC

- H04L 63/10: {for controlling access to devices or network resources}
- G06F 9/505: {considering the load}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Techniques are described to incrementally change the availability of a feature of a software service to clients over a network based on a configuration setting indicating the proportion of the clients that is eligible to receive the feature. In an implementation, a client rank is generated for a client on the network based on a client identification that identifies the client and a feature identification that identifies the feature. The feature may then be made available to the clients via the network if a comparison of the client rank with the configuration setting indicates that the client is eligible to access the feature.

## Claims

### Claim 1

One or more computer-readable storage media hardware comprising processor-executable instructions which, responsive to execution by at least one processor, are configured to incrementally change availability of a feature of a software service to clients over a network based on a configuration setting indicating a proportion of the clients that is eligible to receive the feature.

### Claim 2 (depends on 1)

The one or more computer-readable storage media hardware as described in claim 1, wherein the configuration setting is adjustable to increase or decrease the proportion of clients that is eligible to receive the feature.

### Claim 3 (depends on 2)

The one or more computer-readable storage media hardware as described in claim 2, wherein the configuration setting is set to an initial value to deploy the feature to an initial proportion of the clients and is thereafter increased over time to deploy the feature to an increasing proportion of the clients.

### Claim 4 (depends on 2)

The one or more computer-readable storage media hardware as described in claim 2, wherein the configuration setting is decreased from a first value to a null value to prevent the feature from being made available to the clients and is thereafter increased from the null value to an initial value to deploy the feature to an initial proportion of the clients.

### Claim 5 (depends on 1)

The one or more computer-readable storage media hardware as described in claim 1, further comprising processor-executable instructions that are configured to:
generate a client rank for each of the clients; and
compare the client rank with the configuration setting to determine if the respective one of the clients is eligible to receive the feature.

### Claim 6 (depends on 5)

The one or more computer-readable storage media hardware as described in claim 5, wherein the client rank comprises a random number.

### Claim 7 (depends on 6)

The one or more computer-readable storage media hardware as described in claim 6, wherein the client rank is generated based on a client identification that identifies the respective one of the clients and a feature identification that identifies the feature.

### Claim 8 (depends on 7)

The one or more computer-readable storage media hardware as described in claim 7, further comprising processor-executable instructions that are configured to:
combine the client identification with the feature identification to generate a combined client identification and feature identification;
subject the combined client identification and feature identification to a hash function to generate a hash value; and
subject the hash value to a modulo operation to generate the client rank.

### Claim 9 (depends on 8)

The one or more computer-readable storage media hardware as described in claim 8, wherein the modulo operation comprises an n modulo 100 operation, where n is the hash value; the configuration setting is a percentage between 0% and 100% and the client rank is a value between 0 and 99.

### Claim 10 (depends on 7)

The one or more computer-readable storage media hardware as described in claim 7, further comprising processor-executable instructions that are configured to compare the client identification of each of the one or more clients with a list of clients, the list of clients indicating for selected clients of the one or more clients whether the selected clients are one of eligible to receive the feature or ineligible to receive the feature regardless of the client ranks of the select clients.

### Claim 11

A computer-implemented method comprising:
incrementally changing availability of a feature of a software service to clients over a network based on a configuration setting indicating a proportion of the clients that is eligible to receive the feature, the configuration setting configurable to:
increase or decrease the proportion of clients that is eligible to receive the feature; and
prevent the feature from being made available to the clients by utilizing a null value.

### Claim 12 (depends on 11)

The computer-implemented method as described in claim 11, further comprising:
setting the configuration setting to an initial value effective to deploy the feature to an initial proportion of the clients; and
thereafter increasing the configuration setting over time to deploy the feature to an increasing proportion of the clients.

### Claim 13 (depends on 11)

The computer-implemented method as described in claim 11, further comprising:
decreasing the configuration setting from a first value to the null value effective to prevent the feature from being made available to the clients; and
thereafter increasing the configuration setting from the null value to an initial value to deploy the feature to an initial proportion of the clients.

### Claim 14 (depends on 11)

The computer-implemented method as described in claim 11, further comprising:
generating a client rank for each of the clients; and
comparing the client rank with the configuration setting to determine if the respective one of the clients is eligible to receive the feature.

### Claim 15 (depends on 14)

The computer-implemented method as described in claim 14, wherein the client rank comprises a random number.

### Claim 16

One or more computer-readable storage media hardware comprising processor-executable instructions which, responsive to execution by at least one processor, are configured to:
incrementally change availability of a feature of a software service to clients over a network based on a configuration setting indicating a proportion of the clients that is eligible to receive the feature, the configuration setting being adjustable to increase or decrease the proportion of clients that is eligible to receive the feature, the processor-executable instructions to incrementally change availability of the feature further configured to:
generate a client rank for each of the clients; and
compare the client rank with the configuration setting to determine if the respective one of the clients is eligible to receive the feature.

### Claim 17 (depends on 16)

The one or more computer-readable storage media hardware as described in claim 16, wherein the client rank is generated based on a client identification that identifies the respective one of the clients and a feature identification that identifies the feature.

### Claim 18 (depends on 17)

The one or more computer-readable storage media hardware as described in claim 17 further comprising processor-executable instructions that are configured to:
combine the client identification with the feature identification to generate a combined client identification and feature identification;
subject the combined client identification and feature identification to a hash function to generate a hash value; and
subject the hash value to a modulo operation to generate the client rank.

### Claim 19 (depends on 18)

The one or more computer-readable storage media hardware as described in claim 18, wherein:
the modulo operation comprises an n modulo 100 operation, where n is the hash value, the configuration setting is a percentage between 0% and 100%, and the client rank is a value between 0 and 99.

### Claim 20 (depends on 17)

The one or more computer-readable storage media hardware as described in claim 17 further comprising processor-executable instructions that are configured to:
compare the client identification of each of the one or more clients with a list of clients, the list of clients indicating for selected clients of the one or more clients whether the selected clients are one of eligible to receive the feature or ineligible to receive the feature regardless of the client ranks of the select clients.
