Application distribution system, and distribution server and distribution method thereof
First Claim
1. A method in a distribution server, said method comprising:
- obtaining a program code;
obtaining execution data indicative of one or more execution conditions related to said program code;
determining an unnecessary part of said program code that would not be executed if said program code were executed in accordance with said one or more execution conditions;
removing said unnecessary part of said program code from said program code to provide an optimized program code; and
transmitting said optimized program code to a user terminal over a communication network;
wherein the step of determining comprises;
conducting a static analysis of said program code in accordance with said one or more execution conditions; and
determining, based on said static analysis, said unnecessary part of said program code that would not be executed if said program code were executed in accordance with said one or more execution conditions;
wherein said execution data includes a value of a program counter at which execution of said program code is to begin;
wherein said step of conducting said static analysis comprises;
conducting said static analysis of said program code based on said value of said program counter to generate a tree of function calls; and
wherein said step of determining comprises;
determining, based on said static analysis, a partial tree of said tree of function calls that includes functions that will not be called if said program code is executed in accordance with said execution conditions; and
designating a part of said program code that corresponds to said functions in said partial tree as said unnecessary part of said program code.
1 Assignment
0 Petitions
Accused Products
Abstract
A distribution system for distributing an application from a distribution server to a user terminal through a communication network, in which the distribution server optimizes a program code of the application in question based on execution data indicative of execution conditions of the application in question at the user terminal in question to distribute the obtained application to the user terminal and the user terminal includes a unit for obtaining a program code and execution data of an application from the distribution server to execute the obtained program code based on execution conditions of the application in question indicated in the execution data, and a unit for obtaining execution data of an application being executed to transmit the execution data to the distribution server.
-
Citations
27 Claims
-
1. A method in a distribution server, said method comprising:
-
obtaining a program code; obtaining execution data indicative of one or more execution conditions related to said program code; determining an unnecessary part of said program code that would not be executed if said program code were executed in accordance with said one or more execution conditions; removing said unnecessary part of said program code from said program code to provide an optimized program code; and transmitting said optimized program code to a user terminal over a communication network; wherein the step of determining comprises; conducting a static analysis of said program code in accordance with said one or more execution conditions; and determining, based on said static analysis, said unnecessary part of said program code that would not be executed if said program code were executed in accordance with said one or more execution conditions; wherein said execution data includes a value of a program counter at which execution of said program code is to begin; wherein said step of conducting said static analysis comprises; conducting said static analysis of said program code based on said value of said program counter to generate a tree of function calls; and wherein said step of determining comprises; determining, based on said static analysis, a partial tree of said tree of function calls that includes functions that will not be called if said program code is executed in accordance with said execution conditions; and designating a part of said program code that corresponds to said functions in said partial tree as said unnecessary part of said program code.
-
-
2. A method in a distribution server, said method comprising:
-
obtaining a program code; obtaining execution data indicative of one or more execution conditions related to said program code; determining an unnecessary part of said program code that would not be executed if said program code were executed in accordance with said one or more execution conditions; removing said unnecessary part of said program code from said program code to provide an optimized program code; and transmitting said optimized program code to a user terminal over a communication network; wherein said step of obtaining execution data comprises; obtaining said execution data from said user terminal after said user terminal has partially executed said program code, said execution data being data for allowing said user terminal to resume execution of said program code from a position at which said user terminal ended execution of said program code.
-
-
3. A method in a distribution server, said method comprising:
-
obtaining a program code; obtaining execution data indicative of one or more execution conditions related to said program code; determining an unnecessary part of said program code that would not be executed if said program code were executed in accordance with said one or more execution conditions; removing said unnecessary part of said program code from said program code to provide an optimized program code; and transmitting said optimized program code to a user terminal over a communication network; wherein said execution data includes a value of a program counter, values in a heap, and values on a stack that result from said user terminal partially executing said program code. - View Dependent Claims (4, 10)
-
-
5. A method in a distribution server, said method comprising:
-
obtaining a program code; obtaining execution data indicative of one or more execution conditions related to said program code; determining an unnecessary part of said program code that would not be executed if said program code were executed in accordance with said one or more execution conditions; removing said unnecessary part of said program code from said program code to provide an optimized program code; and transmitting said optimized program code to a user terminal over a communication network; wherein the method further comprises; obtaining user data including data output as a result of partial execution of said program code by said user terminal; and wherein said step of transmitting comprises; transmitting, as a group, said optimized program code, said execution data, and said user data to said user terminal over said communication network. - View Dependent Claims (7, 8)
-
-
6. A method in a distribution server, said method comprising:
-
obtaining a program code; obtaining execution data indicative of one or more execution conditions related to said program code; determining an unnecessary part of said program code that would not be executed if said program code were executed in accordance with said one or more execution conditions; removing said unnecessary part of said program code from said program code to provide an optimized program code; and transmitting said optimized program code to a user terminal over a communication network; wherein said execution data includes information about a value of an instance variable of each object generated in a memory of said user terminal when said program code has been partially executed by said user terminal.
-
-
9. A method in a distribution server, said method comprising:
-
obtaining a program code; obtaining execution data indicative of one or more execution conditions related to said program code; determining an unnecessary part of said program code that would not be executed if said program code were executed in accordance with said one or more execution conditions; removing said unnecessary part of said program code from said program code to provide an optimized program code; and transmitting said optimized program code to a user terminal over a communication network; wherein said step of obtaining execution data, comprises; obtaining said execution data indicative of said one or more execution conditions related to said program code; and obtaining user terminal information comprising a name of a class library cached in said user terminal; wherein said step of determining comprises; determining said unnecessary part of said program code that would not be executed if said program code were executed in accordance with said one or more execution conditions; and determining, based on said user terminal information, an additional unnecessary part of said program code that is a part of said program code that corresponds to said class library; and wherein said step of removing comprises; removing said unnecessary part of said program code and said additional unnecessary part of said program code from said program code to provide said optimized program code.
-
-
11. A system, comprising:
-
a distribution server for distributing an optimized program code and execution data to a user terminal over a communication network, said distribution server comprising; a code optimization unit for optimizing a program code based on said execution data, said execution data being indicative of one or more execution conditions related to said program code, said code optimization unit configured to determine an unnecessary part of said program code that would not be executed if said program code were executed in accordance with said one or more execution conditions, said code optimization unit further configured to remove said unnecessary part of said program code from said program code to provide said optimized program code; and the user terminal for receiving said optimized program code and said execution data from said distribution server over said communication network, and for executing said optimized program code while applying said one or more execution conditions. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18)
-
-
19. A distribution server for distributing an optimized program code to a user terminal over a communication network, comprising:
-
a code optimization unit for optimizing a program code based on execution data, said execution data being indicative of one or more execution conditions related to said program code, said code optimization unit comprising; a code extraction unit for determining an unnecessary part of said program code that would not be executed if said program code were executed in accordance with said one or more execution conditions, and for removing said unnecessary part of said program code from said program code to provide said optimized program code; wherein said distribution server is configured to transmit, as a group, said optimized program code and said execution data to said user terminal over said communication network.
-
-
20. A distribution server for distributing an optimized program code to a user terminal over a communication network, comprising:
-
a code optimization unit for optimizing a program code based on execution data, said execution data being indicative of one or more execution conditions related to said program code, said code optimization unit comprising; a code extraction unit for determining an unnecessary part of said program code that would not be executed if said program code were executed in accordance with said one or more execution conditions, and for removing said unnecessary part of said program code from said program code to provide said optimized program code; wherein said execution data includes information about a value of a program counter, values in a heap, and values in a stack that result from said user terminal partially executing said program code. - View Dependent Claims (22)
-
-
21. A distribution server for distributing an optimized program code to a user terminal over a communication network, comprising:
-
a code optimization unit for optimizing a program code based on execution data, said execution data being indicative of one or more execution conditions related to said program code, said code optimization unit comprising; a code extraction unit for determining an unnecessary part of said program code that would not be executed if said program code were executed in accordance with said one or more execution conditions, and for removing said unnecessary part of said program code from said program code to provide said optimized program code; wherein said code extraction unit is configured to determine, based on user terminal information, an additional unnecessary part of said program code, said user terminal information including information about at least one of hardware resources and software resources of said user terminal; wherein said code extraction unit is configured to remove said unnecessary part of said program code and said additional unnecessary part of said program code from said program code to provide said optimized program code; wherein said user terminal information comprises a name of a class library cached in said user terminal; and wherein said code extraction unit is configured to determine, based on said user terminal information, said additional unnecessary part of said program code as a part of said program code that corresponds to said class library.
-
-
23. A user terminal, comprising:
-
an application management unit for obtaining execution data indicative of one or more execution conditions related to a program code after said program code has been partially executed by said user terminal, and for transmitting said execution data to a distribution server over a communication network; and an execution data processing unit for obtaining an optimized program code and said execution data from said distribution server over said communication network, and for executing said optimized program code while applying said one or more execution conditions, said optimized program code being an optimized version of said program code that results from optimization of said program code by said distribution server based on said execution data.
-
-
24. A storage medium storing a program for causing a distribution server to execute a process, said process comprising:
-
obtaining a program code; obtaining execution data indicative of one or more execution conditions related to said program code; determining an unnecessary part of said program code that would not be executed if said program code were executed in accordance with said one or more execution conditions; removing said unnecessary part of said program code from said program code to provide an optimized program code; and transmitting said optimized program code to a user terminal over a communication network; wherein said step of obtaining execution data comprises; obtaining said execution data from said user terminal after said user terminal has partially executed said program code, said execution data being data for allowing said user terminal to resume execution of said program code from a position at which said user terminal ended execution of said program code.
-
-
25. A storage medium storing a program for causing a distribution server to execute a process, said process comprising:
-
obtaining a program code; obtaining execution data indicative of one or more execution conditions related to said program code; determining an unnecessary part of said program code that would not be executed if said program code were executed in accordance with said one or more execution conditions; removing said unnecessary part of said program code from said program code to provide an optimized program code; and transmitting said optimized program code to a user terminal over a communication network; wherein said execution data includes a value of a program counter, values in a heap, and values on a stack that result from said user terminal partially executing said program code. - View Dependent Claims (26)
-
-
27. A user terminal, comprising:
an execution data processing unit for obtaining an optimized program code and execution data from a distribution server over a communication network, and for executing said optimized program code while applying one or more execution conditions that are specified in said execution data, said optimized program code being an optimized version of a program code that results from said distribution server removing an unnecessary part of said program code from said program code that would not be executed if said program code were executed in accordance with said one or more execution conditions.
Specification