IP Library › Granted Patent US 9,292,299
Granted Patent B2
US 9,292,299 · App. 13/653,180 · Granted Mar 22, 2016

Methods and systems for package management

Inventors: Karan Ashar (Sunnyvale, CA); Daryl Low (San Jose, CA); Anne-Lise Hassenklover (Redwood City, CA)
Assignee: Yahoo! Inc.
G06F9/44G06F8/70G06F8/433G06F8/61
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 9,292,299
App. No.
13/653,180
Granted
Mar 22, 2016
Kind
B2
Abstract

A server-implemented method for managing packages on a client device is provided. The method initiates with receiving a content request from a client device, the content request defining a requested content item and current package data identifying one or more currently installed packages on the client device. Required packages for providing the requested content item are determined based on the content request, wherein determining the required packages includes analyzing dependencies amongst the required packages. A response to the content request is generated based on the determined required packages and the current package data, the response defining actions for providing the requested content item at the client device and actions for managing the one or more currently installed packages on the client device. The package management instructions are sent to the client device.

Claims (33)

1. A computer-implemented method for managing packages on a client device, comprising:

receiving a content request from a client device, the content request defining a requested content item and current package data identifying one or more currently installed packages on the client device;

using a response generator to query a registry based on the content request, to determine required packages for providing the requested content item, wherein determining the required packages includes using a dependency analyzer to analyze dependencies amongst the required packages;

generating, by a response generator, based on the determined required packages and the current package data, a response to the content request, the response defining package management instructions for providing the requested content item at the client device and for managing the one or more currently installed packages on the client device;

wherein generating the package management instructions includes using an instruction grouping module to identify common dependencies amongst the required packages and to organize package instructions for the required packages into one or more transactions based at least in part on the identified common dependencies amongst the required packages, and determining a priority order according to which the transactions are to be committed, each of the transactions defining a set of one or more package instructions which are to be atomically committed at the client device, wherein processing a given transaction to be atomically committed is configured so that failure of any single package instruction within the given transaction results in failure of the given transaction, wherein package instructions of any one of the transactions are not dependent on package instructions of any other transaction, wherein the priority order according to which the transactions are to be committed is defined to prioritize non-advertising content over advertising content;

sending the package management instructions to the client device.

2. The method of claim 1 , wherein generating the response includes determining one or more of the required packages which are not currently installed on the client device; and

wherein the actions for providing the requested content item at the client device include actions for retrieving the one or more of the required packages which are not currently installed on the client device.

3. The method of claim 1 , wherein the actions for managing the one or more currently installed packages on the client device include instructions for one or more of a package update or a package deletion or a package addition.

4. The method of claim 1 , wherein analyzing dependencies amongst the required packages includes accessing a predefined dependency tree for a given required package.

5. The method of claim 1 , wherein the content request is defined to retrieve content for an electronic publication.

6. A non-transitory tangible computer readable medium having program instructions embodied thereon, including:

program instructions for receiving a content request from a client device, the content request defining a requested content item and current package data identifying one or more currently installed packages on the client device;

program instructions for using a response generator to query a registry based on the content request, to determine required packages for providing the requested content item, wherein determining the required packages includes using a dependency analyzer to analyze dependencies amongst the required packages;

program instructions for generating, by a response generator, based on the determined required packages and the current package data, a response to the content request, the response defining package management instructions for providing the requested content item at the client device and for managing the one or more currently installed packages on the client device;

wherein generating the package management instructions includes using an instruction grouping module to identify common dependencies amongst the required packages and to organize package instructions for the required packages into one or more transactions based at least in part on the identified common dependencies amongst the required packages, and determining a priority order according to which the transactions are to be committed, each of the transactions defining a set of one or more package instructions which are to be atomically committed at the client device, wherein processing a given transaction to be atomically committed is configured so that failure of any single package instruction within the given transaction results in failure of the given transaction, wherein package instructions of any one of the transactions are not dependent on package instructions of any other transaction, wherein the priority order according to which the transactions are to be committed is defined to prioritize non-advertising content over advertising content;

program instructions for sending the package management instructions to the client device.

7. The tangible computer readable medium of claim 6 ,

wherein generating the response includes determining one or more of the required packages which are not currently installed on the client device; and

wherein the actions for providing the requested content item at the client device include actions for retrieving the one or more of the required packages which are not currently installed on the client device.

8. The tangible computer readable medium of claim 6 , wherein the actions for managing the one or more currently installed packages on the client device include one or more of a package update or a package deletion.

9. The tangible computer readable medium of claim 6 , wherein analyzing dependencies amongst the required packages includes accessing a predefined dependency tree for a given required package.

10. The tangible computer readable medium of claim 6 , wherein the content request is defined to retrieve content for an electronic publication.

11. A system for managing packages on a client device, comprising:

a package management server having a processor configured to receive a content request from a client device, the content request defining a requested content item and current package data identifying one or more currently installed packages on the client device;

wherein the package management server includes a registry for determining, based on the content request, required packages for providing the requested content item, the registry including a dependency analyzer for analyzing dependencies amongst the required packages;

wherein the package management server includes a response generator for generating, based on the determined required packages and the current package data, a response to the content request, the response defining package management instructions for providing the requested content item at the client device and for managing the one or more currently installed packages on the client device, the response generator configured to send the package management instructions to the client device;

wherein generating the package management instructions includes using an instruction grouping module to identify common dependencies amongst the required packages and to organize package instructions for the required packages into one or more transactions based at least in part on the identified common dependencies amongst the required packages, and determining a priority order according to which the transactions are to be committed, each of the transactions defining a set of one or more package instructions which are to be atomically committed at the client device, wherein processing a given transaction to be atomically committed is configured so that failure of any single package instruction within the given transaction results in failure of the given transaction, wherein package instructions of any one of the transactions are not dependent on package instructions of any other transaction, wherein the priority order according to which the transactions are to be committed is defined to prioritize non-advertising content over advertising content.

12. The system of claim 11 , wherein the response includes one or more of the required packages which are not currently installed on the client device; and

wherein the actions for providing the requested content item at the client device include actions for retrieving the one or more of the required packages which are not currently installed on the client device.

13. The system of claim 11 , wherein the actions for managing the one or more currently installed packages on the client device include one or more of a package update or a package deletion.

14. The system of claim 11 , wherein analyzing dependencies amongst the required packages includes accessing a predefined dependency tree for a given required package.

15. The system of claim 11 , wherein the content request is defined to retrieve content for an electronic publication.

Assignments (9)
CORRECTIVE ASSIGNMENT TO CORRECT THE THE ASSIGNOR NAME PREVIOUSLY RECORDED AT REEL: 052853 FRAME: 0153. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Mar 29, 2021
From: R2 SOLUTIONS LLC
To: STARBOARD VALUE INTERMEDIATE FUND LP, AS COLLATERAL AGENT
Reel/Frame 056832/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE NAME PREVIOUSLY RECORDED ON REEL 053654 FRAME 0254. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST GRANTED PURSUANT TO THE PATENT SECURITY AGREEMENT PREVIOUSLY RECORDED. Recorded Dec 30, 2020
From: STARBOARD VALUE INTERMEDIATE FUND LP
To: R2 SOLUTIONS LLC
Reel/Frame 054981/0377 →
RELEASE OF SECURITY INTEREST IN PATENTS Recorded Jul 8, 2020
From: STARBOARD VALUE INTERMEDIATE FUND LP
To: ACACIA RESEARCH GROUP LLC; AMERICAN VEHICULAR SCIENCES LLC; BONUTTI SKELETAL INNOVATIONS LLC; CELLULAR COMMUNICATIONS EQUIPMENT LLC; INNOVATIVE DISPLAY TECHNOLOGIES LLC; LIFEPORT SCIENCES LLC; LIMESTONE MEMORY SYSTEMS LLC; MOBILE ENHANCEMENT SOLUTIONS LLC; MONARCH NETWORKING SOLUTIONS LLC; NEXUS DISPLAY TECHNOLOGIES LLC; PARTHENON UNIFIED MEMORY ARCHITECTURE LLC; R2 SOLUTIONS LLC; SAINT LAWRENCE COMMUNICATIONS LLC; STINGRAY IP SOLUTIONS LLC; SUPER INTERCONNECT TECHNOLOGIES LLC; TELECONFERENCE SYSTEMS LLC; UNIFICATION TECHNOLOGIES LLC
Reel/Frame 053654/0254 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 25, 2020
From: EXCALIBUR IP, LLC
To: R2 SOLUTIONS LLC
Reel/Frame 053459/0059 →
PATENT SECURITY AGREEMENT Recorded Jun 5, 2020
From: ACACIA RESEARCH GROUP LLC; AMERICAN VEHICULAR SCIENCES LLC; BONUTTI SKELETAL INNOVATIONS LLC; CELLULAR COMMUNICATIONS EQUIPMENT LLC; INNOVATIVE DISPLAY TECHNOLOGIES LLC; LIFEPORT SCIENCES LLC; LIMESTONE MEMORY SYSTEMS LLC; MERTON ACQUISITION HOLDCO LLC; MOBILE ENHANCEMENT SOLUTIONS LLC; MONARCH NETWORKING SOLUTIONS LLC; NEXUS DISPLAY TECHNOLOGIES LLC; PARTHENON UNIFIED MEMORY ARCHITECTURE LLC; R2 SOLUTIONS LLC; SAINT LAWRENCE COMMUNICATIONS LLC; STINGRAY IP SOLUTIONS LLC; SUPER INTERCONNECT TECHNOLOGIES LLC; TELECONFERENCE SYSTEMS LLC; UNIFICATION TECHNOLOGIES LLC
To: STARBOARD VALUE INTERMEDIATE FUND LP, AS COLLATERAL AGENT
Reel/Frame 052853/0153 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 3, 2016
From: YAHOO! INC.
To: EXCALIBUR IP, LLC
Reel/Frame 038950/0592 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 1, 2016
From: EXCALIBUR IP, LLC
To: YAHOO! INC.
Reel/Frame 038951/0295 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 18, 2016
From: YAHOO! INC.
To: EXCALIBUR IP, LLC
Reel/Frame 038383/0466 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2012
From: ASHAR, KARAN; LOW, DARYL; HASSENKLOVER, ANNE-LISE
To: YAHOO! INC.
Reel/Frame 029274/0657 →
Continuity (1)
Related Publication 20140109077A1 · Apr 17, 2014