# US 11,029,932 B2 · Hydration of applications

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

- Number: US 11,029,932 B2
- Document ID: US11029932B2
- Status: Granted
- Kind: B2
- Application number: 16/672,223
- Filed: 2019-11-01
- Published: 2021-02-25
- Granted: 2021-06-08
- Earliest claimed: 2019-08-23
- Assignees: Microsoft Technology Licensing, LLC
- Applicants: Microsoft Technology Licensing, LLC
- Inventors: Aniket Krishnat Naravanekar; Yanran Hao; Neal Robert Christiansen; Ping Xie
- Web page: https://patentgrep.com/patent/US11029932B2

## CPC

- G06F 8/61: Installation
- G06F 3/0604: {Improving or facilitating administration, e.g. storage management}
- G06F 3/0608: {Saving storage space on storage systems}
- G06F 3/0613: {in relation to throughput}
- G06F 3/0649: {Lifecycle management}
- G06F 3/0659: {Command handling arrangements, e.g. command buffers, queues, command scheduling}
- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- G06F 3/0673: {Single storage device}
- G06F 8/62: {Uninstallation}
- G06F 9/445: Program loading or initiating (bootstrapping G06F9/4401; security arrangements for program loading or initiating G06F21/57)
- G06F 9/44505: {Configuring for program initiating, e.g. using registry, configuration files}
- G06F 9/45533: {Hypervisors; Virtual machine monitors}
- G06F 16/178: Techniques for file synchronisation in file systems
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Techniques are disclosed for managing applications. Responsive to receiving a request for access to a first application, metadata is retrieved that is written to the local drive of the computing device. Responsive to the metadata indicating that the first application is not written to the local drive of the computing device, a download request is transmitted to an application provider. A download package for application is received that includes one or more application files that are operable to execute the application when stored on the computing device without executing an installation process.

## Claims

### Claim 1

A computing device comprising:
a local drive;
one or more processors;
a memory in communication with the one or more processors, the memory storing computer-readable instructions stored thereupon which, when executed by the one or more processors, cause the computing device to:
receive a request for access to a first application on the computing device;
responsive to receiving the request, retrieve metadata that is written to the local drive of the computing device to indicate whether the first application is written to the local drive of the computing device;
responsive to the metadata indicating that the first application is not written to the local drive of the computing device, cause a download request to be transmitted to an application provider that is associated with the application;
receive, from the application provider based on the download request, a download package for the first application, wherein the download package includes a predefined compressed batch of files to which the first application belongs, wherein one or more files of the batch are operable to execute the application on the computing device when stored on the computing device without executing an installation process; and
based on the download package for the files:
write the files to the local drive of the computing device; and
service the request by launching the application on the computing device without executing the installation process.

### Claim 2 (depends on 1)

The computing device of claim 1, further comprising computer-readable instructions stored thereupon which, when executed by the one or more processors, cause the computing device to:
receive a request for access to a second application on the computing device;
responsive to receiving the second request, retrieve metadata that is written to the local drive of the computing device to indicate whether the second application is written to the local drive of the computing device; and
responsive to the metadata indicating that the second application is written to the local drive of the computing device, cause installation of the second application on the computing device, wherein files associated with the second application are stored at a local storage of the computing device.

### Claim 3 (depends on 1)

The computing device of claim 1, wherein the metadata includes one or more of file names, sizes, time stamps, permissions, and version.

### Claim 4 (depends on 1)

The computing device of claim 1, wherein when the first application is not written to the local drive of the computing device, files associated with the first application are stored remotely from the computing device.

### Claim 5

A method comprising:
installing a first application on a computing device, wherein files associated with the first application are stored at a local storage of the computing device;
installing a second application on the computing device, wherein files associated with the second application are stored at on a remote computing device;
storing, at the local storage of the computing device, metadata indicative that the second application is not written to the local storage of the computing device;
responsive to a request to launch the second application:
determining that the metadata indicates that the second application is not written to the local drive of the computing device;
causing a download request to be transmitted to the remote computing device;
receiving, from the remote computing device based on the download request, a download package for the second application, wherein the download package includes a predefined compressed batch of files to which the first application belongs, wherein one or more files of the batch are operable to execute the second application on the computing device without executing an installation process;
based on the download package, write the files to the local storage of the computing device; and
service the request by launching the second application on the computing device without executing the installation process.

### Claim 6 (depends on 5)

The method of claim 5, wherein when a predetermined condition is met, the files associated with the second application are removed from the computing device and stored at the remote computing device.

### Claim 7 (depends on 5)

The method of claim 5, further comprising:
when a predetermined condition is met, the files associated with the second application are removed from the computing device and stored at the remote computing device, and
storing, at the local storage of the computing device, metadata indicative that the first application is not written to the local storage of the computing device.

### Claim 8 (depends on 7)

The method of claim 7, wherein the predetermined condition is one or more of an amount of storage that is available, and an age of installation of the second application.

### Claim 9 (depends on 5)

The method of claim 5, further comprising intercepting application launches to determine if a requested application is locally stored.

### Claim 10 (depends on 5)

The method of claim 5, wherein determination of which applications are stored at the local storage of the computing device is made during an initial configuration of the computing device.

### Claim 11 (depends on 5)

The method of claim 5, wherein the second application is indicated as being locally available via a user interface indicative of a filing system for the computing device.

### Claim 12

A system configured to launch applications, the system comprising one or more processors;
a memory in communication with the one or more processors, the memory storing computer-readable instructions stored thereupon which, when executed by the one or more processors, cause the system
to:
install a first application on a computing device, wherein files associated with the first application are stored at a local storage of the computing device;
install a second application on the computing device, wherein files associated with the second application are stored at on a remote computing device;
store, at the local storage of the computing device, metadata indicative that the second application is not written to the local storage of the computing device;
responsive to a request to launch the second application:
determine that the metadata indicates that the second application is not written to the local drive of the computing device;
cause a download request to be transmitted to the remote computing device;
receive, from the remote computing device based on the download request, a download package for the second application, wherein the download package includes a predefined compressed batch of files to which the second application belongs, wherein one or more files of the batch are operable to execute the second application on the computing device without executing an installation process;
based on the download package, write the files to the local storage of the computing device; and
service the request by launching the second application on the computing device without executing the installation process.

### Claim 13 (depends on 12)

The system of claim 12, wherein when a predetermined condition is met, the files associated with the second application are removed from the computing device and stored at the remote computing device.

### Claim 14 (depends on 12)

The system of claim 12, further comprising:
when a predetermined condition is met, the files associated with the second application are removed from the computing device and stored at the remote computing device, and
storing, at the local storage of the computing device, metadata indicative that the first application is not written to the local storage of the computing device.

### Claim 15 (depends on 14)

The system of claim 14, wherein the predetermined condition is an amount of storage that is available on the system.

### Claim 16 (depends on 14)

The system of claim 14, wherein the predetermined condition is an age of installation of the second application.

### Claim 17 (depends on 12)

The system of claim 12, further comprising intercepting application launches to determine if a requested application is locally stored.

### Claim 18 (depends on 12)

The system of claim 12, wherein determination of which applications are stored at the local storage of the computing device is made during an initial configuration of the computing device.

### Claim 19 (depends on 12)

The system of claim 12, wherein the second application is indicated as being locally available via a user interface indicative of a filing system for the computing device.

### Claim 20 (depends on 12)

The system of claim 12, wherein the metadata includes one or more of file names, sizes, time stamps, permissions, and version.
