IP Library Granted Patent US 7,437,707
Granted Patent B2
US 7,437,707 · App. 10/734,295 · Granted Oct 14, 2008

Systems and methods for generating applications that are automatically optimized for network performance

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 7,437,707
App. No.
10/734,295
Granted
Oct 14, 2008
Kind
B2
Abstract

Systems, methods and tools are provided for generating applications that are automatically optimized for efficient deployment in a computing environment based on parameterized criteria. In particular, systems, methods and tools for generating network applications are provided, which automatically partition a functional description of a network application into a set of application modules (e.g., pages) according to parameterized criteria that optimizes the network application for efficient network performance by minimizing application latency.

Claims (62)

1. A method for generating a software application, comprising the steps of:

receiving a functional description of the software application;

automatically partitioning the functional description of the software application into a plurality of modules based on parameterized criteria; and

automatically generating software application code for each module.

2. The method of claim 1 , wherein the functional description of the software application comprises a flowchart description.

3. The method of claim 1 , wherein the functional description of the software application comprises a markup description.

4. The method of claim 1 , wherein the parameterized criteria comprises a measure of software application latency.

5. The method of claim 4 , wherein automatically partitioning comprises:

partitioning the functional description of the software application into a plurality of different partitions; and

using the parameterized criteria to determine which partition, among the plurality of different partitions, provides a minimal software application latency.

6. The method of claim 5 , wherein the parameterized criteria comprises a cost function, which is based on transmission and compilation time for different size modules, as the measure of software application latency.

7. The method of claim 5 , wherein the parameterized criteria comprises a probability measure for determining a probability of a given path in a partition being traversed.

8. The method of claim 1 , further comprising automatically generating a controller that can navigate between the modules of the software application.

9. The method of claim 1 , wherein the step of receiving comprises:

automatically fetching the functional description of the software application from a persistent storage location; and

performing on-line dynamic remodularization of the software application.

10. The method of claim 9 , wherein performing on-line dynamic remodularization comprises:

adapting the parameterized criteria according to changes in an environment in which the software application is deployed; and

automatically partitioning the functional description of the software application into a plurality of modules based on the adapted parameterized criteria.

11. A program storage device readable by a machine, tangibly embodying a program of instructions executable by the machine to perform method steps for generating a software application, the method steps comprising:

receiving a functional description of the software application;

automatically partitioning the functional description of the software application into a plurality of modules based on parameterized criteria; and

automatically generating software application code for each module.

12. The program storage device of claim 11 , wherein the functional description of the software application comprises a flowchart description.

13. The program storage device of claim 11 , wherein the functional description of the software application comprises a markup description.

14. The program storage device of claim 11 , wherein the parameterized criteria comprises a measure of software application latency.

15. The program storage device of claim 14 , wherein the instructions for automatically partitioning comprise instructions for:

partitioning the functional description of the software application into a plurality of different partitions; and

using the parameterized criteria to determine which partition, among the plurality of different partitions, provides a minimal software application latency.

16. The program storage device of claim 15 , wherein the parameterized criteria comprises a cost function, which is based on transmission and compilation time for different size modules, as the measure of software application latency.

17. The program storage device of claim 11 , further comprising instructions for automatically generating a controller that can navigate between the modules of the software application.

18. The program storage device of claim 11 , wherein the instructions for receiving the functional description of the software application comprise instructions for:

automatically fetching the functional description of the software application from a persistent storage location; and

performing on-line dynamic remodularization of the software application.

19. The program storage device of claim 18 , wherein the instructions for performing on-line dynamic remodularization of the software application comprise instructions for:

adapting the parameterized criteria according to changes in an environment in which the software application is deployed; and

automatically partitioning the functional description of the software application into a plurality of modules based on the adapted parameterized criteria.

20. A computer-based system for generating a software application, comprising:

a memory device for storing an application partition module;

a processor in communication with the memory device, the processor operative with the application partition module to automatically partition a functional description of the software application into a plurality of modules based on parameterized criteria; and

a code generator that automatically generates software application code for each module.

21. The computer-based system of claim 20 , further comprising a user interface for enabling a user to generate the functional description of the software application.

22. The computer-based system of claim 20 , wherein the functional description comprises a flowchart description.

23. The computer-based system of claim 20 , wherein the functional description comprises a markup description.

24. The computer-based system of claim 20 , wherein the parameterized criteria comprises a cost function for resource utilization in a computing environment in which the software application is employed.

25. The computer-based system of claim 24 , wherein the computing environment comprises a network environment.

26. The computer-based system of claim 20 , wherein the parameterized criteria comprises a measure of software application latency.

27. The computer-based system of claim 26 , wherein the parameterized criteria comprises a cost function, which is based on transmission and compilation time for different size software application modules, as the measure of software application latency in a network environment.

28. The toot computer-based system of claim 20 , wherein the code generator automatically generates a controller that can navigate between the modules of the software application.

29. A method for generating a network software application, comprising the steps of:

receiving a functional description of the network software application;

automatically partitioning the functional description of the network software application into a plurality of modules based on parameterized criteria of network latency; and

automatically generating network software application code.

30. The method of claim 29 , wherein the functional description of the network software application comprises a flowchart description or a markup description.

31. The method of claim 29 , wherein the network software application comprises a client-server application.

32. The method of claim 29 , wherein the network software application comprises a Web application.

33. The method of claim 29 , wherein automatically partitioning comprises:

partitioning the functional description of the network software application into a plurality of different partitions; and

using the parameterized criteria to determine which partition, among the plurality of different partitions, provides a minimal network latency.

34. The method of claim 29 , wherein the parameterized criteria comprises a cost function, which is based on transmission and compilation time for different size modules, as a measure of network latency.

35. The method of claim 29 , wherein each module comprises a network software application view page, and wherein automatically generating network software application code comprises generating markup for each view page and generating server-side code for dispatching the view pages.

36. The method of claim 35 , further comprising automatically generating a controller that can navigate between the view pages of the network software application.

Assignments (3)
CHANGE OF NAME Recorded Oct 2, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044101/0610 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 30, 2011
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: GOOGLE INC.
Reel/Frame 027463/0594 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 8, 2004
From: HUERTA, JUAN M.; LUBENSKY, DAVID M.; EKANADHAM, CHAITANYA J.K.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 014829/0405 →