Elastic application framework for deploying software
원문보기
IPC분류정보
국가/구분
United States(US) Patent
등록
국제특허분류(IPC7판)
G06F-009/44
G06F-009/50
H04L-012/24
출원번호
US-0580057
(2014-12-22)
등록번호
US-9817658
(2017-11-14)
발명자
/ 주소
Whitcomb, Thomas William
Lohia, Sumit
출원인 / 주소
AMAZON TECHNOLOGIES, INC.
대리인 / 주소
Hogan Lovells US LLP
인용정보
피인용 횟수 :
0인용 특허 :
34
초록▼
Software is deployed to, and executed at, one or more computing devices in a computing system based on current conditions in the computing system and the capabilities of the different computing devices to handle the software. A request to run a software process calls a manager which determines an op
Software is deployed to, and executed at, one or more computing devices in a computing system based on current conditions in the computing system and the capabilities of the different computing devices to handle the software. A request to run a software process calls a manager which determines an optimal place to run the software process. The manager can consider factors such as response time, user demands, bandwidth, processor utilization, storage utilization, security considerations, compatibility considerations and cost. Once a computing device is selected to run the software process, the manager facilitates movement of code and/or data to the computing device.
대표청구항▼
1. A computing device, comprising: a processor; andmemory including instructions that, upon being executed by the processor, cause the computing device to: obtain a request to perform a process requiring access to data from a remote data store;determine a plurality of candidate computing devices tha
1. A computing device, comprising: a processor; andmemory including instructions that, upon being executed by the processor, cause the computing device to: obtain a request to perform a process requiring access to data from a remote data store;determine a plurality of candidate computing devices that are individually configured to perform the process at least at a performance threshold;determine a first computing device from the plurality of candidate computing devices to execute the process based at least in part upon a rank of each of the plurality of candidate computing devices to execute the process, the rank of each of the plurality of candidate computing devices to execute the process based at least in part on a validation of security characteristics associated with each of the candidate computing devices, wherein a first security characteristic in the validation requires no user intervention and ranks over a second security characteristic in the validation that requires the user intervention, and wherein the user intervention corresponds to a user action that authorizes one or more of the candidate computing devices to execute the process after the request is obtained;determine that the first computing device is ranked as corresponding to the first security characteristic;cause the data to be obtained by the first computing device using a network location; andcause the first computing device to obtain and execute code to perform the process. 2. The computing device of claim 1, wherein the instructions upon being executed further cause the computing device to: monitor the first computing device as the first computing device executes the code to perform the process;determine that the first computing device is performing the process below the performance threshold;cause the code to perform the process to be redeployed to a second computing device;cause at least a portion of the data to be communicated from the first computing device to the second computing device; andcause the second selected computing device to execute the code to perform the process. 3. The computing device of claim 1, wherein the instructions upon being executed to cause the computing device to determine the first computing device include causing the computing device to: evaluate each of the plurality of candidate computing devices based at least in part on respective user demand of each of the plurality of candidate computing devices. 4. The computing device of claim 1, wherein the instructions upon being executed to cause the computing device to determine the first computing device include causing the computing device to: evaluate each of the plurality of candidate computing devices based at least in part on a respective security level of each of the plurality of candidate computing devices. 5. The computing device of claim 1, wherein the instructions upon being executed to cause the computing device to determine the first computing device include causing the computing device to: evaluate each of the plurality of candidate computing devices based at least in part on a respective monetary cost of each of the plurality of candidate computing devices to perform the process. 6. The computing device of claim 1, wherein the instructions upon being executed to cause the computing device to determine the first computing device include causing the computing device to: evaluate each of the plurality of candidate computing devices based at least in part on a respective response time of each of the plurality of candidate computing devices. 7. The computing device of claim 1, wherein the instructions upon being executed to cause the data to be obtained by the first computing device includes causing the computing device to: send second instructions to the first computing device to fetch the data from the remote data store using the network location. 8. The computing device of claim 1, wherein the instructions upon being executed to cause the data to be obtained by the first computing device includes causing the computing device to: send second instructions to a second computing device located at the network location to fetch the data from the remote data store and send the data to the first computing device. 9. The computing device of claim 1, wherein the instructions upon being executed to cause the first computing device to obtain the code includes causing the computing device to: send second instructions to the first computing device to fetch the code from the network location or a second network location. 10. The computing device of claim 1, wherein the instructions upon being executed to cause the first computing device to obtain the code includes causing the computing device to: send second instructions to a second computing device located at the network location or a second network location to fetch the code and send the code to the first computing device. 11. The computing device of claim 1, wherein the plurality of candidate computing devices includes a second computing device associated with the request to perform the process. 12. A computer-implemented method for managing a process, comprising: obtaining a request to perform a process requiring access to data from a remote data store;determining a plurality of candidate computing devices that are individually configured to perform the process at least at a performance threshold;determining a first computing device from the plurality of candidate computing devices to execute the process based at least in part upon a rank of each of the plurality of candidate computing devices to execute the process, the rank of each of the plurality of candidate computing devices to execute the process based at least in part on a validation of security characteristics associated with each of the candidate computing devices, wherein a first security characteristic in the validation requires no user intervention and ranks over a second security characteristic in the validation that requires the user intervention, and wherein the user intervention corresponds to a user action that authorizes one or more of the candidate computing devices to execute the process after the request is obtained;determining that the first computing device is ranked as corresponding to the first security characteristic;causing the data to be obtained by the first computing device using a network location; andcausing the first computing device to obtain and execute code to perform the process. 13. The computer-implemented method of claim 12, further comprising: monitoring the first computing device as the first computing device executes the code to perform the process;determining that the first computing device is performing the process below the performance threshold;causing the code to perform the process to be redeployed to a second computing device;causing at least a portion of the data to be communicated from the first computing device to the second computing device; andcausing the second selected computing device to execute the code to perform the process. 14. The computer-implemented method of claim 12, wherein determining the first computing device includes: evaluating each of the plurality of candidate computing devices based at least in part on one of respective networking bandwidth, respective processor resource utilization, or respective storage resource utilization of each of the plurality of candidate computing devices. 15. The computer-implemented method of claim 12, wherein determining the first computing device includes: evaluating each of the plurality of candidate computing devices based at least in part on respective compatibility of each of the plurality of candidate computing devices to perform the process. 16. The computer-implemented method of claim 12, wherein the code is compliant with an ECMA-262 standard. 17. The computer-implemented method of claim 12, wherein the plurality of candidate computing devices includes a plurality of virtual computing devices operating on one or more physical computing devices. 18. A non-transitory computer readable storage medium storing instructions for managing a process, the instructions, upon being executed by a processor, causing the processor to perform: obtain a request to perform a process requiring access to data from a remote data store;determine a plurality of candidate computing devices that are individually configured to perform the process at least at a performance threshold;determine a first computing device from the plurality of candidate computing devices to execute the process based at least in part upon a rank of each of the plurality of candidate computing devices to execute the process, the rank of each of the plurality of candidate computing devices to execute the process based at least in part on a validation of security characteristics associated with each of the candidate computing devices, wherein a first security characteristic in the validation requires no user intervention and ranks over a second security characteristic in the validation that requires the user intervention, and wherein the user intervention corresponds to a user action that authorizes one or more of the candidate computing devices to execute the process after the request is obtained;determine that the first computing device is ranked as corresponding to the first security characteristic;cause the data to be obtained by the first computing device using a network location; andcause the first computing device to obtain and execute code to perform the process. 19. The non-transitory computer readable storage medium of claim 18, wherein the instructions upon being executed to cause the data to be obtained by the first computing device include causing the processor to perform at least one of: send second instructions to the first computing device to fetch the data from the remote data store using the network location; orsend third instructions to a second computing device located at the network location to fetch the data from the remote data store and send the data to the first computing device. 20. The non-transitory computer readable storage medium of claim 18, wherein the instructions upon being executed to cause the first computing device to obtain the code include causing the processor to perform at least one of: send second instructions to the first computing device to fetch the code from the network location or a second network location; orsend third instructions to a second computing device located at the network location or a second network location to fetch the code and send the code to the first computing device.
연구과제 타임라인
LOADING...
LOADING...
LOADING...
LOADING...
LOADING...
이 특허에 인용된 특허 (34)
Anwar I. Elwalid ; T. V. Lakshman ; Martin May FR, Adaptive processor schedulor and method for reservation protocol message processing.
Delcheva, Sylvia J.; Frey, Gregor K.; Opgenorth, Juergen; Petrov, Miroslav R., Architecture and method for monitoring system resources within an enterprise network.
Toebes, John; Turner, Bryan C.; Walker, Douglas Jay, Arrangement for selecting a server to provide distributed services from among multiple servers based on a location of a client device.
Toebes, John; Turner, Bryan C.; Walker, Douglas Jay, Arrangement for selecting a server to provide distributed services from among multiple servers based on a location of a client device.
Tal,Yoram; Yagolnitser,Larisa; Rabah,Ramzi; Wheeler,Patrick Gerald; Jakubik,John Joseph; Chan,Tuck Leong, Infrastructure for the automation of the assembly of schema maintenance scripts.
Bazzinotti,John; Davis,Peter Scott; Wante,Kenneth John; Champagne,Timothy Steven; Rochefort,Dany J., Method and apparatus for load balancing in a virtual private network.
Frey, Gregor K.; Weller, Joerg; Opgenorth, Juergen; Kautzleben, Reinhold; Petrov, Miroslav R., Method and system for employing a hierarchical monitor tree for monitoring system resources in a data processing environment.
Petrov, Miroslav R.; Shirkov, Georgi Zdr.; Kautzleben, Reinhold; Frey, Gregor K., Multi-service management architecture employed within a clustered node configuration.
Treder,Douglas M.; Tesler,Lawrence G.; Nordstrom,Paul G., System for tracking and providing access to information about server components invoked during the dynamic generation of web pages.
Schuetze, Hinrich; Pedersen, Jan, USER QUERY GENERATE SEARCH RESULTS THAT RANK SET OF SERVERS WHERE RANKING IS BASED ON COMPARING CONTENT ON EACH SERVER WITH USER QUERY, FREQUENCY AT WHICH CONTENT ON EACH SERVER IS ALTERED USING WEB .
※ AI-Helper는 부적절한 답변을 할 수 있습니다.