IP Library Granted Patent US 9,223,599
Granted Patent B1
US 9,223,599 · App. 13/436,356 · Granted Dec 29, 2015

Client-side server for client-side scripting languages

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,223,599
App. No.
13/436,356
Granted
Dec 29, 2015
Kind
B1
Abstract

A method of executing a cross-platform application on a system is disclosed. An instruction pertaining to an execution of the cross-platform application on the system is received. Based on a determination that the instruction pertains to a rendering of an element of a user interface of the cross-platform application on the system, the instruction is sent across a bridge to an engine executing in the native layer to process the instruction at the native layer. Alternatively, based on a determination that the instruction does not pertain to a rendering of the element of the user interface of the cross-platform application on the system, the instruction is sent to an engine executing in the cross-platform layer of the system to process the instruction at the cross-platform layer.

Claims (37)

1. A system comprising:

one or more processors of a device; and

one or more modules implemented by the one or more processors, the one or more modules configured to, at least:

identify a capability of the device with respect to a rendering of a portion of a user interface of a cross-platform application;

request a device-specific implementation of an object of the cross-platform application from a separate server system based on the identifying of the capability;

receive the device-specific implementation of the object from the separate server system, the device-specific implementation including compiled native code usable for the rendering of the portion of the user interface at a native layer of the device;

receive a version of a cross-platform implementation of the object from the separate server system, the cross-platform implementation usable for rendering the portion of the user interface at a cross-platform layer of the device, the cross-platform implementation also usable for rendering the portion of the user interface at a cross-platform layer of an additional device, a native layer of the additional device being different from the native layer of the device;

receive an instruction pertaining to an execution of the cross-platform application on the device; and

based on an analysis of factors pertaining to an execution of the instruction at the native layer of the device and an execution of the instruction at the cross-platform layer of the device, perform one of using the device-specific implementation of the object to process the instruction at the native layer and using the version of the cross-platform implementation of the object to process the instruction at the cross-platform layer, the analysis of the factors performed automatically upon the receiving of the instruction by a controller executing on the device, the controller comparing data pertaining to prior executions of the instruction using the device-specific implementation of the object to data pertaining to prior executions of the instruction using the version of the cross-platform implementation of the object with respect to the factors.

2. The system of claim 1 , wherein the native layer is one of an iOS operating system layer and an Android operating system layer and the cross-platform layer is an HTML5 layer.

3. The system of claim 1 , wherein the using of the compiled native code includes sending the instruction across a bridge that enables the object to access the native compiled code from the cross-platform layer.

4. The system of claim 1 , wherein the analysis of the factors includes a determination of whether the native layer has a more powerful capability with respect to the rendering of the portion of the user interface than the cross-platform layer.

5. The system of claim 1 , wherein the analysis of the factors includes a determination of whether the native layer would have better performance with respect to the rendering of the portion of the user interface than the cross-platform layer.

6. The system of claim 1 , wherein the analysis of the factors includes a determination of whether an upgrade to the version of the cross-platform implementation of the object has made the device-specific implementation of the object obsolete.

7. A method comprising:

identifying a capability of a device with respect to a rendering of a portion of a user interface of a cross-platform application;

requesting a device-specific implementation of an object of the cross-platform application from a separate server system based on the identifying of the capability;

receiving the device-specific implementation of the object from the separate server system, the device-specific implementation including compiled native code usable for the rendering of the portion of the user interface at a native layer of the device;

receiving a version of a cross-platform implementation of the object from the separate server system, the cross-platform implementation usable for rendering the portion of the user interface at a cross-platform layer of the device, the cross-platform implementation also usable for rendering the portion of the user interface at a cross-platform layer of an additional device, a native layer of the additional device being different from the native layer of the device;

receiving an instruction pertaining to an execution of the cross-platform application on the device; and

based on an analysis of factors pertaining to an execution of the instruction at the native layer of the device and an execution of the instruction at the cross-platform layer of the device, performing one of using the device-specific implementation of the object to process the instruction at the native layer and using the version of the cross-platform implementation of the object to process the instruction at the cross-platform layer, the analysis of the factors performed automatically upon the receiving of the instruction by a controller executing on the device, the controller comparing data pertaining to prior executions of the instruction using the device-specific implementation of the object to data pertaining prior executions of the instruction using the version of the cross-platform implementation of the object with respect to the factors.

8. The method of claim 7 , wherein the native layer is one of an iOS operating system layer and an Android operating system layer and the cross-platform layer is an HTML5 layer.

9. The method of claim 7 , wherein the using of the compiled native code includes sending the instruction across a bridge that enables the object to access the native compiled code from the cross-platform layer.

10. The method of claim 7 , wherein the analysis of the factors includes a determination of whether the native layer has a more powerful capability with respect to the rendering of the portion of the user interface than the cross-platform layer.

11. The method of claim 7 , wherein the analysis of the factors includes a determination of whether the native layer would have better performance with respect to the rendering of the portion of the user interface than the cross-platform layer.

12. The method of claim 7 , wherein the analysis of the factors includes a determination of whether an upgrade to the version of the cross-platform implementation of the object has made the device-specific implementation of the object obsolete.

13. A non-transitory computer-readable medium comprising a set of instructions that, when executed by at least one processor of a computer system, cause the computer system to perform operations, the operations comprising:

identifying a capability of a device with respect to a rendering of a portion of a user interface of a cross-platform application;

requesting a device-specific implementation of an object of the cross-platform application from a separate server system based on the identifying of the capability;

receiving the device-specific implementation of the object from the separate server system, the device-specific implementation including compiled native code usable for the rendering of the portion of the user interface at a native layer of the device;

receiving a version of a cross-platform implementation of the object from the separate server system, the cross-platform implementation usable for rendering the portion of the user interface at a cross-platform layer of the device, the cross-platform implementation also usable for rendering the portion of the user interface at a cross-platform layer of an additional device, a native layer of the additional device being different from the native layer of the device;

receiving an instruction pertaining to an execution of the cross-platform application on the device; and

based on an analysis of factors pertaining to an execution of the instruction at the native layer of the device and an execution of the instruction at the cross-platform layer of the device, performing one of using the device-specific implementation of the object to process the instruction at the native layer and using the version of the cross-platform implementation of the object to process the instruction at the cross-platform layer, the analysis of the factors performed automatically upon the receiving of the instruction by a controller executing on the device, the controller comparing data pertaining to prior executions of the instruction using the device-specific implementation of the object to data pertaining to prior executions of the instruction using the version of the cross-platform implementation of the object with respect to the factors.

14. The non-transitory computer-readable medium of claim 13 , the native layer is one of an iOS operating system layer and an Android operating system layer and the cross-platform layer is an HTML5 layer.

15. The non-transitory computer-readable medium of claim 13 , wherein the using of the compiled native code includes sending the instruction across a bridge that enables the object to access the native compiled code from the cross-platform layer.

16. The non-transitory computer-readable medium of claim 13 , wherein the analysis of the factors includes a determination of whether the native layer has a more powerful capability with respect to the rendering of the portion of the user interface than the cross-platform layer.

17. The non-transitory computer-readable medium of claim 13 , wherein the analysis of the factors includes a determination of whether the native layer would have better performance with respect to the rendering of the portion of the user interface than the cross-platform layer.

Assignments (5)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded May 23, 2022
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: ZYNGA INC.
Reel/Frame 060163/0437 →
NOTICE OF GRANT OF SECURITY INTEREST IN PATENTS Recorded Dec 14, 2020
From: ZYNGA INC.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 054719/0490 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Dec 11, 2020
From: BANK OF AMERICA, N.A., AS LENDER
To: ZYNGA INC.
Reel/Frame 054701/0393 →
NOTICE OF GRANT OF SECURITY INTEREST IN PATENTS Recorded Dec 21, 2018
From: ZYNGA INC.
To: BANK OF AMERICA, N.A., AS LENDER
Reel/Frame 049147/0546 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 31, 2013
From: RACANELLI, DAN; DUNN, IAN; JONES, ROBERT AARON
To: ZYNGA, INC.
Reel/Frame 031861/0249 →