IP Library › Granted Patent US 11,030,066
Granted Patent B2
US 11,030,066 · App. 16/668,676 · Granted Jun 8, 2021

Dynamic application decomposition for execution in a computing environment

Inventors: Xuebin He (Westwood, MA); Alex Robbins (Mansfield, MA); James R. King (Norwood, MA); Amy Seibel (Cambridge, MA); Victor Fong (Medford, MA)
Assignee: EMC IP Holding Company LLC
G06F11/302G06F11/0772G06F11/3466G06F11/3612G06F8/70
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 11,030,066
App. No.
16/668,676
Filed
Oct 30, 2019
Granted
Jun 8, 2021
Kind
B2
Examiner
KHATRI, ANIL
Art Unit
2191
USPC
717/124
Abstract

Techniques for dynamic decomposition of an application executing in a computing environment are provided. For example, an apparatus comprises at least one processing platform comprising one or more processing devices. The at least one processing platform is configured to execute a portion of an application program in a first virtual computing element, wherein the application program comprises one or more portions of marked code, receive a request for execution of one of the one or more portions of marked code, decide whether to execute the portion of marked code identified in the request in the first virtual computing element or in a second virtual computing element, and cause the portion of marked code identified in the request to be executed in the second virtual computing element, when it is decided to execute the portion of the marked code in the second virtual computing element.

Claims (41)

1. An apparatus comprising:

at least one processing platform comprising one or more processing devices;

the at least one processing platform being configured to:

execute a portion of an application program in a first virtual computing element, wherein the application program comprises one or more portions of marked code;

receive a request for execution of a select portion of the one or more portions of marked code;

decide whether to execute the select portion of marked code identified in the request in the first virtual computing element or in a second virtual computing element; and

cause the select portion of marked code identified in the request to be executed in the second virtual computing element, when it is decided to execute the select portion of marked code in the second virtual computing element;

wherein the processing platform comprises a controller module and an interceptor module; and

wherein the interceptor module associated with the select portion of marked code identified in the request intercepts the request and

sends a query to the controller module to make the decision whether to execute the select portion of marked code identified in the request in the first virtual computing element or in the second virtual computing element.

2. The apparatus of claim 1 , wherein each of the one or more portions of marked code are marked by a function wrapper or an annotation.

3. The apparatus of claim 1 , wherein the one or more portions of marked code comprise one or more application functions.

4. The apparatus of claim 1 , wherein the first virtual computing element is a first container and the second virtual computing element is a second container remote from the first container.

5. The apparatus of claim 1 , wherein the processing platform further comprises one or more remote handler modules and a function registry module.

6. The apparatus of claim 5 , wherein the controller module decides whether to execute the select portion of marked code identified in the request in the first virtual computing element or in the second virtual computing element and sends a response to the interceptor module with a decision.

7. The apparatus of claim 6 , wherein, when the decision is to execute the select portion of marked code in the first virtual computing element, the interceptor module causes the select portion of marked code to be executed in the first virtual computing element.

8. The apparatus of claim 6 , wherein, when the decision is to execute the select portion of marked code in the second virtual computing element, the interceptor module forwards a request to execute the select portion of marked code to a remote handler module associated with the second virtual computing element.

9. The apparatus of claim 8 , wherein the interceptor module serializes arguments associated with the select portion of marked code to be executed and adds the serialized arguments to the request sent to the remote handler module.

10. The apparatus of claim 8 , wherein the remote handler module utilizes the function registry module to cause execution of the portion of the marked code.

11. The apparatus of claim 10 , wherein the remote handler module notifies the interceptor module when there is an error executing the portion of the marked code.

12. The apparatus of claim 1 , further comprising sending results associated with the execution of the portion of marked code identified in the request back to a requestor.

13. The apparatus of claim 1 , further comprising marking one or more portions of code of the application program to create a library comprising the one or more portions of marked code.

14. The apparatus of claim 1 , wherein the processing platform further comprises a cloud-based computing environment service in accordance with which the application program is executed.

15. The apparatus of claim 14 , wherein the cloud-based computing environment service comprises a Platform-as-a-Service (PaaS) architecture or a Function-as-a-Service (FaaS) architecture.

16. The apparatus of claim 1 , wherein the processing platform further comprises a user interface configured to enable at least one of code optimization and performance metric management.

17. A method comprising:

executing a portion of an application program in a first virtual computing element, wherein the application program comprises one or more portions of marked code;

invoking a request for execution of a select portion of the one or more portions of marked code;

intercepting the request with an interceptor module associated with the select portion of marked code;

sending, by the interceptor module, a query to a controller module to decide whether to execute the portion of marked code identified in the request in the first virtual computing element or in the second virtual computing element; and

causing, by the interceptor module, the select portion of marked code identified in the request to be executed in the second virtual computing element, when it is decided by the controller module to execute the select portion of marked code in the second virtual computing element;

wherein the steps are performed by at least one processing platform comprising one or more processing devices, the one or more processing devices including the controller module and the interceptor module.

18. The method of claim 17 , wherein each of the one or more portions of marked code are marked by a function wrapper or an annotation.

19. An article of manufacture comprising a non-transitory processor-readable storage medium having stored therein program code of one or more software programs, wherein the program code when executed by at least one processing device causes the at least one processing device to perform steps of:

executing a portion of an application program in a first virtual computing element, wherein the application program comprises one or more portions of marked code;

invoking a request for execution of a select portion of the one or more portions of marked code;

intercepting the request with an interceptor module associated with the select portion of marked code;

sending, by the interceptor module, a query to a controller module to decide whether to execute the portion of marked code identified in the request in the first virtual computing element or in the second virtual computing element; and

causing, by the interceptor module, the select portion of marked code identified in the request to be executed in the second virtual computing element, when it is decided by the controller module to execute the select portion of marked code in the second virtual computing element;

wherein the at least one processing device comprises the controller module and the interceptor module.

20. The article of manufacture of claim 19 wherein each of the one or more portions of marked code are marked by a function wrapper or an annotation.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (051302/0528) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.); SECUREWORKS CORP.
Reel/Frame 060438/0593 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053311/0169) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0742 →
RELEASE OF SECURITY INTEREST AT REEL 051449 FRAME 0728 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.; SECUREWORKS CORP.; EMC CORPORATION
Reel/Frame 058002/0010 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 053311/0169 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Dec 31, 2019
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.; SECUREWORKS CORP.; EMC CORPORATION
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 051449/0728 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Dec 16, 2019
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.; SECUREWORKS CORP.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 051302/0528 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 30, 2019
From: HE, XUEBIN; ROBBINS, ALEX; KING, JAMES R.; SEIBEL, AMY; FONG, VICTOR
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 050866/0057 →
Continuity (1)
Related Publication 20210133066A1 · May 6, 2021