IP Library › Granted Patent US 9,641,608
Granted Patent B2
US 9,641,608 · App. 14/567,558 · Granted May 2, 2017

Network relocation of software features through data flow analysis

Inventor: Marcos Del Puerto Garcia (Heidelberg, DE)
Assignee: SAP SE
H04L67/1091G06F3/04842H04L67/10H04L67/34H04L67/42
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,641,608
App. No.
14/567,558
Granted
May 2, 2017
Kind
B2
Abstract

A feature selection of a feature of an application may be received, where the application is designed for partial execution on a server and for partial execution on a client computer connected to the server by a network. A current location of application code implementing the feature may be identified as being at either the server or the client computer. Then, implementation of the feature may be relocated from the current location to a modified location, where modified application code, obtained from the application code, is re-assigned between the server and the client computer.

Claims (49)

1. A computer program product, the computer program product being tangibly embodied on a non-transitory computer-readable storage medium and comprising instructions that, when executed by at least one processor, are configured to:

receive a feature selection of a feature of an application, the application designed for partial execution on a server and for partial execution on a client computer connected to the server by a network;

identify a current location of application code implementing the feature as being at either the server or the client computer;

identify communication points associated with the application code at which client-server interactions occur;

extract the application code, based on the communication points; and

relocate implementation of the feature from the current location to a modified location including re-assigning modified application code, obtained from the extracted application code, between the server and the client computer,

wherein server-client interactions within the modified application code are reversed as compared with the extracted application code.

2. The computer program product of claim 1 , wherein the instructions, when executed, are further configured to cause the at least one processor to:

provide a feature selection graphical user interface (GUI) including a plurality of selectable application features; and

receive the feature selection from the feature selection GUI.

3. The computer program product of claim 1 , wherein the instructions, when executed, are further configured to cause the at least one processor to:

identify the application code from within an entire application code of the application for extraction therefrom, based on the communication points.

4. The computer program product of claim 3 , wherein the instructions, when executed, are further configured to cause the at least one processor to:

generate a reverse abstract syntax tree (AST) representing at least the application code and based on the communication points.

5. The computer program product of claim 1 , wherein the instructions, when executed, are further configured to cause the at least one processor to:

analyze the application code including identifying start and end points thereof within an entire application code of the application.

6. The computer program product of claim 5 , wherein the instructions, when executed, are further configured to cause the at least one processor to:

extracting the application code, based on the identified start and end points.

7. The computer program product of claim 1 , wherein the instructions, when executed, are further configured to cause the at least one processor to:

modify the application code to obtain the modified application code, including refactoring the application code.

8. The computer program product of claim 7 , wherein the instructions, when executed, are further configured to cause the at least one processor to:

refactor the application code based on a reverse abstract syntax tree (AST) formed based on the application code.

9. A computer-implemented method for executing instructions stored on a non-transitory computer readable storage medium, the method comprising:

receiving a feature selection of a feature of an application, the application designed for partial execution on a server and for partial execution on a client computer connected to the server by a network;

identifying a current location of application code implementing the feature as being at either the server or the client computer;

identifying communication points of the application code, from within an entire application code of the application, at which client-server interactions occur;

extracting the application code, based on the communication points;

modifying the application code to obtain modified application code; and

relocating implementation of the feature from the current location to a modified location including re-assigning the modified application code between the server and the client computer, and reversing server-client interactions of the application code within the modified application code, as compared with the extracted application code.

10. The method of claim 9 , wherein modifying the application code to obtain modified application code comprises:

refactoring the application code to obtain the modified application code.

11. The method of claim 9 , wherein modifying the refactoring the application code to obtain the modified application code comprises:

refactoring the application code based on a reverse abstract syntax tree (AST) formed based on the application code.

12. A system comprising:

a non-transitory computer-readable storage medium storing instructions recorded thereon; and

at least one processor operable to execute the stored instructions, the system including

a feature selector configured to cause the at least one processor to receive a feature selection of a feature of an application, the application designed for partial execution on a server and for partial execution on a client computer connected to the server by a network;

a feature analyzer configured to cause the at least one processor to identify a current location of application code implementing the feature as being at either the server or the client computer, and identify the application code from within an entire application code of the application;

a logic extractor configured to extract the application code from the entire application code; and

a code relocator configured to modify the extracted application code to obtain modified application code in which server-client interactions are reversed as compared to in the extracted application code, and relocate implementation of the feature including re-assigning the modified application code between the server and the client computer.

13. The system of claim 12 , wherein the feature selector is further configured to cause the at least one processor to:

provide a feature selection graphical user interface (GUI) including a plurality of selectable application features; and

receive the feature selection from the feature selection GUI.

14. The system of claim 12 , wherein the feature analyzer is further configured to cause the at least one processor to:

identify communication points of the application code, from within the entire application code of the application, at which client-server interactions occur.

15. The system of claim 12 , wherein the feature analyzer is further configured to cause the at least one processor to analyze the application code including identifying start and end points thereof within the entire application code of the application.

16. The system of claim 15 , wherein the logic extractor is further configured to cause the at least one processor to extract the application code, based on the identified start and end points.

17. The system of claim 12 , wherein the code relocator is further configured to cause the at least one processor to refactor the application code to modify the application code and thereby obtain the modified application code.

18. The system of claim 17 , wherein the code relocator is further configured to cause the at least one processor to refactor the application code based on a reverse abstract syntax tree (AST) formed based on the application code.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 20, 2015
From: GARCIA, MARCOS DEL PUERTO
To: SAP SE
Reel/Frame 036373/0833 →
Continuity (1)
Related Publication 20160173588A1 · Jun 16, 2016