De-referenced package execution
First Claim
1. A computer-implemented method for executing a package, the method comprising:
- receiving, at a first computing device, an interface definition that defines an interface for calling a library stub configured to provide functionality for de-referenced execution of the package;
receiving, at the first computing device, execution location data that defines whether the package is to be executed locally or remotely, the execution location data including data indicating a frequency of calls to the package and a size of a response generated by the call to the package;
storing the interface definition and the execution location data;
subsequent to the storing the interface definition and the execution location data, receiving, from a second computing device executing an application and the library stub, a first request for the execution location data;
in response to the first request, providing a first response to the library stub that includes the execution location data, the first response to provide the functionality to the application based on execution of the package;
subsequent to the providing the first response, receiving an updated version of the package that includes one or more changes to the package;
storing the updated version of the package as an updated package;
subsequent to the storing the updated package, receiving, from the second computing device, a second request for the execution location data; and
in response to the second request, providing a second response to the library stub that includes the execution location data, the second response to provide the functionality to the application based on execution of the updated package without the application being rebuilt or redeployed on the second computing device.
1 Assignment
0 Petitions
Accused Products
Abstract
A library registry service receives a library interface definition that defines an interface for a library stub and data indicating whether a corresponding package is to be executed locally or remotely. An application is then built using the library stub. When the application calls the library stub, the library stub determines whether the package is to be executed locally or remotely either dynamically or by consulting the library registry service. The library stub then causes the package to be executed in the determined location. An updated library may be periodically generated and deployed for execution by the library stub locally or remotely. The library stub might also batch calls and/or provide a control interface for configuring aspects of its operation.
-
Citations
20 Claims
-
1. A computer-implemented method for executing a package, the method comprising:
-
receiving, at a first computing device, an interface definition that defines an interface for calling a library stub configured to provide functionality for de-referenced execution of the package; receiving, at the first computing device, execution location data that defines whether the package is to be executed locally or remotely, the execution location data including data indicating a frequency of calls to the package and a size of a response generated by the call to the package; storing the interface definition and the execution location data; subsequent to the storing the interface definition and the execution location data, receiving, from a second computing device executing an application and the library stub, a first request for the execution location data; in response to the first request, providing a first response to the library stub that includes the execution location data, the first response to provide the functionality to the application based on execution of the package; subsequent to the providing the first response, receiving an updated version of the package that includes one or more changes to the package; storing the updated version of the package as an updated package; subsequent to the storing the updated package, receiving, from the second computing device, a second request for the execution location data; and in response to the second request, providing a second response to the library stub that includes the execution location data, the second response to provide the functionality to the application based on execution of the updated package without the application being rebuilt or redeployed on the second computing device. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A system, comprising:
a library registry service comprising a first processor and a first non-transitory computer-readable storage medium storing instructions executable on the first processor for; receiving a registration request to register an interface definition for a package, the registration request comprising execution location data that predefines one or more conditions for use in determining whether the package is to be executed locally or remotely, storing the execution location data, and receiving and responding to requests for the execution location data; and
an application server comprising a second processor and a second non-transitory computer-readable storage medium storing instructions executable on the second processor for;executing an application configured to call upon a library stub that exposes an interface defined by the interface definition to the application, receiving a call to the library stub from the application, and in response to receiving the call, determining if the package is to be executed remotely at a remote server associated with the package or locally at the application server based upon the execution location data, a frequency of calls to the package, and a size of a response generated by the call to the package, and; in response to determining that the package is to be executed locally, causing the package to be executed at the application server, or in response to determining that the package is to be executed remotely, determining a network address of the remote server associated with the package by way of the library registry service and causing the package to be executed at the remote server. - View Dependent Claims (8, 9, 10, 11, 12)
-
13. A computer-implemented method for executing a package, the method comprising:
-
receiving a registration request to register an interface definition for the package, the registration request comprising execution location data that predefines conditions for use in determining whether the package is to be executed locally or remotely, storing the execution location data; receiving one or more requests for the execution location data;
executing an application configured to call upon a library stub that exposes an interface defined by the interface definition to the application;receiving a call to the library stub from the application executing on an application server; and in response to receiving the call to the library stub, determining, based on the conditions, if the package is to be executed remotely from the application server or locally at the application server, the conditions including a current level of computing resources of the application server, a frequency of calls to the package, and a size of a response generated by the call to the package, and; in response to determining that the package is to be executed locally at the application server, causing the package to be executed locally at the application server;
orin response to determining that the package is to be executed remotely from the application server, causing the package to be executed remotely from the application server at a remote server associated with the package. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20)
-
Specification