IP Library Granted Patent US 10,120,775
Granted Patent B2
US 10,120,775 · App. 15/628,673 · Granted Nov 6, 2018

Mobile development platform in a cloud based architecture

Inventors: Shyamsundar Jayaraman (San Mateo, CA); Henele Litaka Adams (San Francisco, CA); Bryan Jay Klimt, Jr. (San Mateo, CA); Kevin David Lacker (Berkeley, CA); Charity Hope Majors (San Francisco, CA); David Eitan Poll (Mountain View, CA); Ilya Sukhar (San Francisco, CA); James Jacob Yu (San Francisco, CA)
Assignee: PARSE INC.
G06F11/3604G06F8/30G06F8/61G06F9/547G06F11/0709G06F11/0757G06F11/3688G06F21/51G06F21/53H04L63/08H04L67/1002
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,120,775
App. No.
15/628,673
Granted
Nov 6, 2018
Kind
B2
Abstract

Embodiments are directed towards mobile application development in a cloud-based architecture. Mobile applications may be designed to communicate with a cloud platform over a network. Mobile application developers may be enabled to submit cloud code to cloud platforms for use by mobile applications. If cloud code is provided to a cloud platform, the cloud platform may perform one or more actions to authenticate the cloud code, such as, ensuring that that the user providing the cloud code is authorized to provide the cloud code. If the cloud code is authenticated the cloud platform may perform one or more actions to validate the cloud code. If validated, the cloud code may be activated for use by mobile applications and/or mobile application developers. Activation of the cloud code may include associating the cloud code with one or more function calls and/or with one or more trigger points.

Claims (44)

1. A computer-implemented method, comprising:

receiving from a client device a first cloud code module at a cloud platform device;

associating the first cloud code module with at least one function call and one or more timeout values, wherein the function call is directed to one or more services provided by the cloud platform device;

monitoring an execution of the first cloud code module associated with the function call in a sandbox and cancelling the execution of the first cloud code module when upon expiration of at least one of the timeout values;

receiving a second cloud code module for validation;

estimating that a probability of the second cloud code module will time out before completion is greater than a threshold probability, the probability determined based on a similarity between the first cloud code module and the second cloud code module without executing the second cloud code module in the sandbox; and

repairing or rejecting the second cloud code module by the cloud platform device when the probability that the second cloud code module will time out is greater than the threshold probability.

2. The method of claim 1 , wherein the timeout values comprise a function call timeout value and a sandbox timeout value that is shorter than the function call timeout value.

3. The method of claim 1 , wherein the timeout values comprise a function call timeout value, a cloud code platform device timeout value that is shorter than the function call timeout value, and a sandbox timeout value that is shorter than the cloud code platform device timeout value.

4. The method of claim 3 , wherein cancelling the execution of the first cloud code module comprises detecting that the sandbox timeout value has been exceeded and generating a report from the sandbox to the cloud code platform device.

5. The method of claim 3 , wherein the function call timeout value represents a high hierarchical level of code execution, the cloud code platform device timeout value represents an intermediate hierarchical level of code execution, and the sandbox timeout value represents a low hierarchical level of code execution, and further comprising detecting a defect in the execution of the first cloud code module at a relatively lower hierarchical level prior to expiration of a relatively higher hierarchical level's timeout, and attempting to cure the defect at the relatively lower hierarchical level using time remaining at the relatively higher hierarchical level.

6. The method of claim 1 , further comprising:

scanning the second cloud code module, the scanning comprising comparing one or more source code patterns in the second cloud code module to one or more source code patterns in the first cloud code module that has previously timed out;

detecting that the one or more source code patterns in the second cloud code module match the one or more source code patterns in the first cloud code module; and

rejecting the second cloud code module based at least in part on the determining.

7. A non-transitory computer-readable medium storing instructions, the instructions comprising:

instructions configured to cause a computing device to receive from a client device a first cloud code module at a cloud platform device;

instructions configured to cause the computing device to associate the first cloud code module with at least one function call and one or more timeout values, wherein the function call is directed to one or more services provided by the cloud platform device;

instructions configured to cause the computing device to monitor an execution of the first cloud code module associated with the function call in a sandbox and

to cancel the execution of the cloud code module when a time taken to execute the first cloud code module upon expiration of at least one of the timeout values;

instructions configured to cause the computing device to receive a second cloud code module for validation;

instructions configured to cause the computing device to estimate that a probability of the second cloud code module will time out before completion is greater than a threshold probability, the probability determined based on a similarity between the first cloud code module and the second cloud code module without executing the second cloud code module in the sandbox; and

instructions configured to cause the computing device to repair or reject the second cloud code module by the cloud platform device when the probability that the second cloud code module will time out is greater than the threshold probability.

8. The medium of claim 7 , wherein the timeout values comprise a function call timeout value and a sandbox timeout value that is shorter than the function call timeout value.

9. The medium of claim 7 , wherein the timeout values comprise a function call timeout value, a cloud code platform device timeout value that is shorter than the function call timeout value, and a sandbox timeout value that is shorter than the cloud code platform device timeout value.

10. The medium of claim 9 , wherein cancelling the execution of the first cloud code module comprises detecting that the sandbox timeout value has been exceeded and generating a report from the sandbox to the cloud code platform device.

11. The medium of claim 9 , wherein the function call timeout value represents a high hierarchical level of code execution, the cloud code platform device timeout value represents an intermediate hierarchical level of code execution, and the sandbox timeout value represents a low hierarchical level of code execution, and further storing instructions configured to cause the computing device to detect a defect in the execution of the first cloud code module at a relatively lower hierarchical level prior to expiration of a relatively higher hierarchical level's timeout, and attempt to cure the defect at the relatively lower hierarchical level using time remaining at the relatively higher hierarchical level.

12. The medium of claim 7 , further instructions configured to cause the computing device to:

scan the second cloud code module, the scanning comprising comparing one or more source code patterns in the second cloud code module to one or more source code patterns in the first cloud code module that has previously timed out;

detect that the one or more source code patterns in the second cloud code module match the one or more source code patterns in the first cloud code module; and

reject the second cloud code module based at least in part on the determining.

13. An apparatus comprising:

a network interface configured to receive from a client device a first cloud code module at a cloud platform device;

a processor circuit for the cloud platform device;

association logic executable on the processor circuit and configured to associate the first cloud code module with at least one function call and one or more timeout values, wherein the function call is directed to one or more services provided by the cloud platform device;

monitoring logic executable on the processor circuit and configured to monitor an execution of the first cloud code module associated with the function call in a sandbox;

execution logic executable on the processor circuit and configured to cancel the execution of the first cloud code module upon expiration of at least one of the timeout values; wherein

the network interface is further configured to receive a second cloud code module for validation; and

the processor circuit is further configured to estimate that a probability of the second cloud code module will time out before completion is greater than a threshold probability, the probability determined based on a similarity between the first cloud code module and the second cloud code module without executing the second cloud code module in the sandbox, and to repair or reject the second cloud code module by the cloud platform device when the probability that the second cloud code module will time out is greater than the threshold probability.

14. The apparatus of claim 13 , wherein the timeout values comprise a function call timeout value and a sandbox timeout value that is shorter than the function call timeout value.

15. The apparatus of claim 13 , wherein the timeout values comprise a function call timeout value, a cloud code platform device timeout value that is shorter than the function call timeout value, and a sandbox timeout value that is shorter than the cloud code platform device timeout value.

16. The apparatus of claim 15 , wherein the function call timeout value represents a high hierarchical level of code execution, the cloud code platform device timeout value represents an intermediate hierarchical level of code execution, and the sandbox timeout value represents a low hierarchical level of code execution, and further comprising detection logic configured to detect a defect in the execution of the first cloud code module at a relatively lower hierarchical level prior to expiration of a relatively higher hierarchical level's timeout, and repair logic configured to attempt to cure the defect at the relatively lower hierarchical level using time remaining at the relatively higher hierarchical level.

17. The apparatus of claim 13 , wherein

apparatus further comprises scanning logic configured to scan the second cloud code module; the scanning comprising comparing one or more source code patterns in the second cloud code module to one or more source code patterns in the first cloud code module that has previously timed out, detection logic configured to detect that the one or more source code patterns in the second cloud code module match the one or more source code patterns in the first cloud code module, and rejection logic configured to reject the second cloud code module based at least in part on the determining.

Assignments (6)
CHANGE OF NAME Recorded May 5, 2022
From: FACEBOOK, INC.
To: META PLATFORMS, INC.
Reel/Frame 059858/0387 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 21, 2021
From: PARSE, LLC
To: FACEBOOK, INC.; RHODIUM ACQUISITION SUB I, INC.
Reel/Frame 055995/0637 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 21, 2021
From: RHODIUM ACQUISITION SUB I, LLC
To: FACEBOOK, INC.
Reel/Frame 055995/0651 →
CHANGE OF NAME Recorded Apr 21, 2021
From: RHODIUM ACQUISITION SUB I, INC.
To: RHODIUM ACQUISITION SUB I, LLC
Reel/Frame 055998/0829 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 28, 2021
From: LACKER, KEVIN DAVID; JAYARAMAN, SHYAMSUNDAR; KLIMT, BRYAN JAY, JR; POLL, DAVID EITAN; YU, JAMES JACOB; ADAMS, HENELE IITAKA; SUKHAR, ILYA; MAJORS, CHARITY HOPE
To: PARSE, INC.
Reel/Frame 055114/0604 →
MERGER AND CHANGE OF NAME Recorded Dec 9, 2020
From: PARSE, INC.; PLUTO ACQUISITION SUB II, LLC
To: PARSE, LLC
Reel/Frame 054595/0613 →
Continuity (4)
Continuation 14878494 · Oct 8, 2015
Continuation 14268560 · May 2, 2014
Continuation 13829771 · Mar 14, 2013
Related Publication 20170286256A1 · Oct 5, 2017
Cited By (1)
US 12,361,128