7228540

Preparation for Software on Demand System

PublishedJune 5, 2007
Assigneenot available in USPTO data we have
Technical Abstract

Patent Claims
25 claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

1. In a computing supply system having a client and a server, a method of preparing a computer program for operation in the computer supply system that supplies portions of program code or program data of the computer program, from the server to the client, as the program needs the portions, the portions identified as program units, the method comprising: defining two or more program units of the program; removing one or more program units, having one or more predetermined requirements including at least one of having a single reference to the program unit from another program unit, having a single reference to another program unit from the program unit, being smaller than a predetermined size, being larger than a predetermined size, including a natural data group, including an alphanumeric structure, including an array, having fewer than a predetermined number of references, or having more than a predetermined number of references, from the program, thereby producing a program skeleton that is missing at least one program unit; maintaining one or more program units in the program skeleton required for initial execution of the program, the program skeleton operable to be sent from the server to the client in less time than the program without removed program units, the program skeleton operable to be initially executed as the program; and inserting instructions in place of at least one removed program unit in the program skeleton, the instructions providing the client with information to request the removed program unit from the server when the program skeleton encounters the instructions, the information including an address of a server from which the client can retrieve the removed program unit.

2

2. The method of claim 1 , wherein the removed program unit comprises a single program unit entry and at least one program unit exit.

3

3. The method of claim 1 , wherein the maintained program unit comprises plural program unit entries and plural program unit exits.

4

4. The method of claim 1 , wherein defining the program unit comprises defining procedure or data blocks of the program.

5

5. The method of claim 4 , wherein defining the program unit comprises defining the program unit as a first procedure or data block of the program.

6

6. The method of claim 5 , wherein defining the program unit comprises defining the program unit to additionally include a second procedure or data block of the program if the second block is referenced by the first block and the second block is not referenced by any other program unit or block.

7

7. The method of claim 4 , wherein defining the program unit comprises defining the program unit as a first block if either the first block of the program is a call target of a procedure outside the first block or the first block is directly referenced from outside a parent procedure of the first block.

8

8. The method of claim 4 , wherein defining the program unit comprises defining the program unit to include only dynamically live blocks or only dynamically dead blocks.

9

9. The method of claim 1 , wherein the information comprises inserting a program unit identification.

10

10. The method of claim 1 , wherein defining the program unit comprises assuring that the program unit that includes an entry to the program is not removed.

11

11. The method of claim 1 , wherein defining the program unit comprises assuring that the program unit that includes data that is referenced by data or code that is outside defined program units of the program is not removed.

12

12. The method of claim 1 , further comprising inserting a placeholder in place of the program unit in the program skeleton.

13

13. In a computing supply system having a client and a server, a method of preparing a computer application for operation in the computer supply system that supplies funclets of the computer application, from the server to the client, as the application needs the funclets, the method comprising: defining one or more funclets of the application, each funclet comprising a single funclet entry and at least one funclet exit, and including at least one other predetermined requirement including being smaller than a predetermined size, being larger than a predetermined size, including a natural data group, including an alphanumeric structure, including an array, having fewer than a predetermined number of references, or having more than a predetermined number of references; removing one or more funclets having a predetermined requirement of a single funclet entry, from the application, thereby producing an application skeleton that is missing at least one funclet; maintaining one or more funclets in the program skeleton required for initial execution of the application, the program skeleton operable to be sent from the server to the client in less time than the program without removed funclets, the program skeleton operable to be initially executed as the application; and inserting one or more placeholders in place of one or more removed funclets in the program skeleton, the one or more placeholders providing information about one or more removed funclets including one or more instructions directing the client to an address of the server from which jhe client requests the one or more removed funclets.

14

14. The method of claim 13 , wherein defining the funclet comprises defining a maintained funclet as a first procedure block of the application if: the first procedure block comprises a call target of a procedure outside the first procedure block; the first procedure block is directly referenced from outside a parent procedure of the first procedure block; the first procedure block is dynamically live and is referenced by a dynamically dead block; or the first procedure block is dynamically dead and is referenced by a dynamically live block.

15

15. The method of claim 14 , wherein the first procedure block comprises a single entry and wherein defining the funclet further comprises defining the funclet to additionally include a second block if the second block is referenced only by the first procedure block.

16

16. The method of claim 13 , wherein the placeholder comprises a funclet identification.

17

17. The method of claim 13 , wherein defining the funclet comprises assuring that a funclet with a number of references from the funclet to other funclets that exceeds a predetermined number of references is not removed.

18

18. The method of claim 13 , wherein defining the funclet comprises assuring that the funclet that includes an entry to the application is not removed.

19

19. The method of claim 13 , wherein defining the funclet comprises assuring that the funclet that includes data that is referenced by data or code that is outside defined funclets of the application is not removed.

20

20. A computer-readable medium having stored thereon an information structure comprising a program skeleton of a program, the program skeleton comprising: a first data field comprising a maintained funclet, the maintained funclet required for initial execution of the program a second data field comprising a placeholder in place of one or more removed funclets, the one or more removed funclets having one or more predetermined requirements including at least one of having a single reference to the program unit from another program unit, having a single reference to another program unit from the program unit, being smaller than a predetermined size, being laraer than a predetermined size, including a natural data group, including an alphanumeric structure, including an array, having fewer than a predetermined number of references, or having more than a predetermined number of references; and a third data field comprising an instruction, the instruction providing information including the address of the server a client requests the removed funclet, the instruction operable to request the funclet from the server when the client encounters the instruction in the program skeleton.

21

21. The computer-readable medium of claim 20 , wherein the placeholder comprises empty space.

22

22. The computer-readable medium of claim 21 , wherein the empty space comprises zeros.

23

23. The computer-readable medium of claim 20 , wherein the instruction comprises a funclet identification identifying the funclet.

24

24. The computer-readable medium of claim 20 , wherein the program skeleton further comprises a program identification identifying the program.

25

25. The computer-readable medium of claim 20 , wherein the information comprises a computer system identiflcation identifying a server where the funclet is stored.

Patent Metadata

Filing Date

Unknown

Publication Date

June 5, 2007

Inventors

Hon Keat W. Chan
Andrew J. Edwards
David Gillies
Carlos P. Gomes
Jiyang Liu
Patrick L. McDonald
Mark L. Roberts
Hoi Vo

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “PREPARATION FOR SOFTWARE ON DEMAND SYSTEM” (7228540). https://patentable.app/patents/7228540

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.