IP Library Granted Patent US 10,613,853
Granted Patent B2
US 10,613,853 · App. 16/417,627 · Granted Apr 7, 2020

Updating software components through online stores

Inventors: Jordan Frederick Cohen (Seattle, WA); Nikki Josephine Barry (Redmond, WA); Shiaf Ramlan (Redmond, WA); David Pokluda (Redmond, WA); Rajasekaran Rangarajan (Kirkland, WA); Ullattil Shaji (Sammamish, WA)
Assignee: Microsoft Technology Licensing, LLC
G06F8/65
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,613,853
App. No.
16/417,627
Granted
Apr 7, 2020
Kind
B2
Abstract

The present invention extends to methods, systems, and computer program products for updating software components through online stores. A computing device interacts with an online store to download applications and frameworks that are distributed from the online store. The computer system includes an operating system configured to keep distributed applications and frameworks updated. The operating system can, automatically and without user intervention, intelligently schedule and attempt application and framework updates in a manner that minimizes user disruptions. The operating system can manage application and framework updating for any and/or all user accounts on a computing device. The operating system can manage updates even when each application and/or framework is to be separately installed for different user accounts that have the application and/or framework installed.

Claims (53)

1. A computer system, the computer system comprising:

one or more hardware processors;

system memory coupled to the one or more hardware processors, the system memory storing instructions that are executable by the one or more hardware processors; and

the one or more hardware processors executing the instructions stored in the system memory to receive updates to software components stored at the computer system, including the following:

send an application update query to an online store, the application update query querying the online store for updates to any of a plurality of applications that were developed with and installed along with different frameworks;

send a separate framework update query to the online store in parallel with the application update query, the framework update query querying the online store for updates to any frameworks used to develop and installed along with any of the plurality of applications;

receive a framework update in response to the framework update query, the framework update including an update to a framework, the framework update being updated relative to a framework used to develop and be installed along with a sub-plurality of applications at the computer system, the sub-plurality of applications selected from among the plurality of applications; and

install the framework update during an operating system maintenance window to replace use of the framework by the sub-plurality of applications with the framework update, wherein one or more of the plurality of applications was at least one of not developed with or not installed along with the framework update.

2. The computer system of claim 1 , further comprising the one or more hardware processors executing the instructions stored in the system memory to schedule the framework update for installation at the computer system during the operating system maintenance window, even though the sub-plurality of applications were not developed with nor installed along with the framework update.

3. The computer system of claim 1 , further comprising the one or more hardware processors executing the instructions stored in the system memory to:

receive an application update, the application update including an update to an application installed at the computer system, the application selected from among the sub-plurality of applications;

schedule the application update for installation at the computer system during the operating system maintenance window;

install the application update during the operating system maintenance window; and

wherein the one or more hardware processors executing the instructions stored in the system memory to install the framework update during the operating system maintenance window comprise the one or more hardware processors executing the instructions stored in the system memory to install the framework update to replace use of the framework with use of the framework update for at least one application, even though an application update for the at least one application was not received in response to the application update query, the at least one application selected from among the sub-plurality of applications.

4. The computer system of claim 2 , wherein the one or more hardware processors executing the instructions stored in the system memory to schedule the framework update for installation at the computer system during an operating system maintenance window comprise the one or more hardware processors executing the instructions stored in the system memory to determine that the framework update is to be separately installed for each of a plurality of user accounts at the computer system.

5. The computer system of claim 4 , wherein the one or more hardware processors executing the instructions stored in the system memory to install the framework update comprise the one or more hardware processors executing the instructions stored in the system memory to:

detect that a first user account, from among the plurality of user accounts, is logged into the computer system; and

while the first user account is logged into the computer system:

install the framework update for the first user account; and

install the framework update for a second user account, from among the plurality of user accounts, during system idle time.

6. The computer system of claim 3 , further comprising the one or more hardware processors executing the instructions stored in the system memory to:

track update telemetry for the application update; and

track separate update telemetry for the framework update; and

wherein the update telemetry and the separate update telemetry are used for monitoring the quality of managed releases of applications and frameworks.

7. The computer system of claim 1 , wherein the one or more hardware processors executing the instructions stored in the system memory to install the framework update comprises the one or more hardware processors executing the instructions stored in the system memory to install the framework update at the computer system a plurality of times, each installation of the framework update installed for a different account from among a plurality of different accounts at the computer system.

8. The computer system of claim 1 , further comprising the one or more hardware processors executing the instructions stored in the system memory to determine that a network connection between the computer system and the online store is not a metered connection.

9. The computer system of claim 1 , wherein the online store sells software applications configured for use with the operating system, the operating system selected from among: Microsoft® Windows®, Apple® iOS®, and Google® Android™.

10. The computer system of claim 1 , wherein the one or more hardware processors executing the instructions stored in the system memory to install the framework update comprises the one or more hardware processors executing the instructions stored in the system memory to install the framework update to replace use of the framework by two or more applications with use of the framework update by the two or more applications.

11. A method for use at a computer system, the method for receiving updates to software components stored at the computer system, the method comprising:

sending an application update query to an online store for a plurality of applications that were developed with and installed along with different frameworks;

sending a separate framework update query to the online store in parallel with the application update query, the framework update query querying the online store for updates to any frameworks used to develop and installed along with any of the plurality of applications;

receiving a framework update in response to the framework update query, the framework update including an update to a framework, the framework update being updated relative to a framework used to develop and be installed along with a sub-plurality of applications at the computer system, the sub-plurality of applications selected from among the plurality of applications; and

installing the framework update during an operating system maintenance window to replace use of the framework by the sub-plurality of applications with the framework update, wherein one or more of the sub-plurality of applications was at least one of not developed with or not installed along with the framework update.

12. The method of claim 11 , further comprising scheduling the framework update for installation at the computer system during the operating system maintenance window, even though the sub-plurality of applications were not developed with nor installed along with the framework update.

13. The method of claim 11 , further comprising:

receiving an application update, the application update including an update to an application installed at the computer system, the application selected from among the sub-plurality of applications;

scheduling the application update for installation at the computer system during the operating system maintenance window;

installing the application update during the operating system maintenance window; and

wherein installing the framework update during the operating system maintenance window comprises installing the framework update to replace use of the framework update with use of the framework update for at least one application, even though an application update for the at least one application was not received in response to the application update query, the at least one application selected from among the sub-plurality of applications.

14. The method of claim 13 , wherein scheduling the framework update for installation at the computer system during an operating system maintenance window comprises determining that the framework update is to be separately installed for each of a plurality of user accounts at the computer system.

15. The method of claim 14 , wherein installing the framework update comprises:

detecting that a first user account, from among the plurality of user accounts, is logged into the computer system; and

while the first user account is logged into the computer system:

installing the framework update for the first user account; and

installing the framework update for a second user account, from among the plurality of user accounts, during system idle time.

16. The method of claim 13 , further comprising:

tracking update telemetry for the application update; and

tracking separate update telemetry for the framework update; and

wherein the update telemetry and the separate update telemetry are used for monitoring the quality of managed releases of applications and frameworks.

17. The method of claim 11 , wherein installing the framework update comprises installing the framework update at the computer system a plurality of times, each installation of the framework update installed for a different account from among a plurality of different accounts at the computer system.

18. The method of claim 11 , further comprising determining that a network connection between the computer system and the online store is not a metered connection.

19. The method of claim 11 , wherein the online store sells software applications configured for use with the operating system, the operating system selected from among: Microsoft® Windows®, Apple® iOS®, and Google® Android™.

20. The method of claim 11 , wherein installing the framework update comprises installing the framework update to replace use of the framework by two or more applications with use of the framework update by the two or more applications.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 20, 2019
From: COHEN, JORDAN FREDERICK; BARRY, NIKKI JOSEPHINE; RAMLAN, SHIAF; POKLUDA, DAVID; RANGARAJAN, RAJASEKARAN; SHAJI, ULLATTIL
To: MICROSOFT CORPORATION
Reel/Frame 049235/0822 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 20, 2019
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 049235/0839 →