IP Library Granted Patent US 9,158,520
Granted Patent B2
US 9,158,520 · App. 13/550,914 · Granted Oct 13, 2015

Development of platform independent applications

Inventors: Bruno Fernandez-Ruiz (Mountain View, CA); Daryl Mun-Kid Low (San Jose, CA); Martin F. N. Cooper (Fremont, CA)
Assignee: YAHOO! INC.
G06F8/60
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,158,520
App. No.
13/550,914
Granted
Oct 13, 2015
Kind
B2
Abstract

Method, system, and programs for providing packages to applications is disclosed. An application that is executable on a plurality of device platforms is generated. The application is deployed to a client device. A package list received from the client device is analyzed to determine package dependencies for packages on the package list. The packages on the package list and dependent packages are provided based on the package dependencies to the client device. The packages and dependent packages may be installed by the client device to ensure that the application is executable based on characteristics of the client device.

Claims (53)

1. A method implemented on at least one computing device, each computing device having at least one processor, storage, and a communication platform connected to a network for providing packages to applications, the method comprising:

generating an application that is executable on a plurality of device platforms;

providing the application to a client device;

receiving, from the client device, after the application is provided to the client device, a package request that includes information indicating a first package for modifying or supplementing the application;

determining a version of the application at the client device;

determining one or more package dependencies for the first package based on the version;

determining, based on the one or more package dependencies, a second package for modifying or supplementing the application;

obtaining the first package and the second package; and

providing the first package and the second package to the client device such that the first package and the second package are used to modify or supplement the application at the client device.

2. The method of claim 1 , wherein receiving the package request comprises receiving the package request from the client device in response to the application being executed at the client device.

3. The method of claim 1 , wherein receiving the package request comprises receiving the package request from the client device in response to a user request from a user of the client device.

4. The method of claim 1 , wherein receiving the package request comprises receiving the package request from the client device based on one or more time intervals.

5. The method of claim 1 , further comprising:

determining a platform associated with the client device; and

determining, based on the package request and the platform, the first package for the client device.

6. The method of claim 1 , further comprising:

providing, to the client device, an indication to undo from the application the modification or supplementation provided by at least one of the first package or the second package to the application,

wherein the indication causes the client device to undo the modification or supplementation to the application, and wherein the indication is provided to the client after the first package and the second package are used to modify or supplement the application.

7. The method of claim 6 , wherein providing the indication to the client device comprises providing the indication to the client device based on a determination that at least one of the first package or the second package is no longer needed at the client device.

8. The method of claim 6 , wherein providing the indication to the client device comprises providing the indication to the client device based on a determination that an issue exists with at least one of the first package or the second package.

9. A non-transitory machine readable medium having information recorded for providing packages to applications, wherein the recorded information, when read by the machine, causes the machine to:

generate an application that is executable on a plurality of device platforms;

provide the application to a client device;

receive, from the client device, after the application is provided to the client device, a package request that includes information indicating a first package for modifying or supplementing the application;

determine a version of the application at the client device;

determining one or more package dependencies for the first package based on the version;

determine, based on the one or more package dependencies, a second package for modifying or supplementing the application;

obtain the first package and the second package; and

provide the first package and the second package to the client device such that the first package and the second package are used to modify or supplement the application at the client device.

10. The non-transitory machine readable medium of claim 9 , wherein receiving the package request comprises receiving the package request from the client device in response to the application being executed at the client device.

11. The non-transitory machine readable medium of claim 9 , wherein receiving the package request comprises receiving the package request from the client device in response to a user request from a user of the client device.

12. The non-transitory machine readable medium of claim 9 , wherein receiving the package request comprises receiving the package request from the client device based on one or more time intervals.

13. The non-transitory machine readable medium of claim 9 , wherein the recorded information, when read by the machine, further causes the machine to:

determine a platform associated with the client device; and

determine, based on the package request and the platform, the first package for the client device.

14. A system for providing packages to applications, comprising:

at least one processor;

an application builder programmed to:

generate an application that is executable on a plurality of device platforms; and

provide the application to a client device; and

a package management unit programmed to:

receive, from the client device, after the application is provided to the client device, a package request that includes information indicating a first package for modifying or supplementing the application;

determine a version of the application at the client device;

determine one or more package dependencies for the first package based on the version;

determine, based on the one or more package dependencies, a second package for modifying or supplementing the application;

obtain the first package and the second package; and

provide the first package and the second package to the client device such that the first package and the second package are used to modify or supplement the application at the client device.

15. The system of claim 14 , wherein receiving the package request comprises receiving the package request from the client device in response to the application being executed at the client device.

16. The system of claim 14 , wherein receiving the package request comprises receiving the package request from the client device in response to a user request from a user of the client device.

17. The system of claim 14 , wherein receiving the package request comprises receiving the package request from the client device based on one or more time intervals.

18. The system of claim 14 , wherein the package management unit is further programmed to:

determine a platform associated with the client device; and

determine, based on the package request and the platform, the first package for the client device.

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 Aug 12, 2014
From: FERNANDEZ-RUIZ, BRUNO; LOW, DARYL MUN-KID; COOPER, MARTIN F.N.
To: YAHOO! INC.
Reel/Frame 033511/0791 →
Continuity (3)
Continuation In Part 13437494 · Apr 2, 2012
Provisional Application 61568056 · Dec 7, 2011
Related Publication 20130152072A1 · Jun 13, 2013