Method, system, and apparatus for distributing and using computer-based applications over a network
First Claim
1. A method in a computer system for executing an application on a client computer system, said application being included in a server computer system and said application including computer-readable code, wherein said code is arranged in programmed order, and said application further including at least one chunk of said code, said method comprising:
- connecting said client and said server to a network; and
said client;
requesting said chunks required to execute said application in non-sequential order with respect to said programmed order, from said server via said network, wherein said chunks comprise code implemented in a computer-executable language selected from the group consisting of C Language and another language;
receiving said chunks via streaming from said server; and
emulating execution of said chunks thereby executing said application.
3 Assignments
0 Petitions
Accused Products
Abstract
A method, system, and apparatus for distributing and using portions of a computer-based application over a network, such as the internet. The present embodiment executes streamed chunks of code associated with an application on demand by binary emulation. Therefore the present invention enables execution of applications on network-based computer systems thereby enabling flexible distribution and use of executable code over a network. By streaming the transmission of non-sequentially ordered code chunks the present embodiment enables overlapping of streaming and execution of code chunks and reduces network latency effects of the past. The present embodiment may also speculatively stream the code chunks associated with the application to further reduce network latency effects associated with transmission of the code chunks.
89 Citations
19 Claims
-
1. A method in a computer system for executing an application on a client computer system, said application being included in a server computer system and said application including computer-readable code, wherein said code is arranged in programmed order, and said application further including at least one chunk of said code, said method comprising:
-
connecting said client and said server to a network; and
said client;
requesting said chunks required to execute said application in non-sequential order with respect to said programmed order, from said server via said network, wherein said chunks comprise code implemented in a computer-executable language selected from the group consisting of C Language and another language;
receiving said chunks via streaming from said server; and
emulating execution of said chunks thereby executing said application.
-
-
2. A method in a computer system for executing an application on a client computer system, said application including computer-readable code, wherein said code is arranged in a programmed order, said method comprising:
-
connecting said client to a network;
connecting said network to a server computer system including said application;
establishing communication between said server and said client via said network;
monitoring said network by said server for requests from said client;
requesting at least one chunk of said code, wherein said chunk is included in said application, wherein said chunk comprises code implemented in a computer-executable language selected from the group consisting of C Language and another language, and wherein said chunk is required to execute said application by said client from said server;
identifying and locating said chunks by said server;
streaming said chunks in non-sequential order, with respect to said programmed order, to said client by said server;
emulating execution of said chunks by said client thereby executing said application; and
communicating completion of execution of said application to said server thereby shutting down connection between said client and said server. - View Dependent Claims (3, 4, 5)
locating said shared library by said server;
transmitting said shared library to said client; and
including said shared library during execution of said application thereby executing said application in cooperation with said shared library.
-
-
5. The method as set forth in claim 2 wherein said client caches said transmitted chunks thereby enabling reuse of said chunks.
-
6. An apparatus for executing an application on a client computer system, said application being included in a server computer system and said application including computer-readable code, wherein said code is arranged in a programmed order and said application further including at least one chunk of said code, said apparatus comprising:
-
a network being connected to said client and said server; and
a memory incorporated into said client computer system, said memory comprising an e-serve module, wherein said e-serve module is implemented in a computer-executable language selected from the group consisting of C Language and another language;
said client requesting and receiving from said server via said network said chunks that are streamed in non-sequential order, with respect to said programmed order, and that are required to execute said application wherein said chunks comprise code implemented in a computer-executable language selected from the group consisting of C Language and another language; and
said chunks being executed by emulation and by said client.
-
-
7. An apparatus for executing an application on a client computer system, said application including computer-readable code, wherein said code is arranged in programmed order, said apparatus comprising:
-
a network connected to said client;
a server computer system connected to said network, said server including said application, communicating with said client via said network, and monitoring said network for requests from said client; and
at least one chunk of said code, wherein said chunk is included in said application that is required to execute said application being streamed in non-sequential order, with respect to said programmed order by said server to said client, and said chunks being executed by said client by emulation and wherein said chunks comprise code implemented in a computer-executable language selected from the group consisting of C Language and another language. - View Dependent Claims (8, 9, 10)
-
-
11. A computer-readable medium containing instructions for causing a computer system to perform method acts for executing an application on a client computer system, said application being included in a server computer system and said application including computer-readable code, wherein said code is arranged in programmed order and said application further including at least one chunk of said code, said method acts comprising:
-
connecting said client and said server to a network; and
said client;
requesting said chunks required to execute said application in non-sequential order, with respect to said programmed order, from said server via said network, wherein said chunks comprise code implemented in a computer-executable language selected from the group consisting of C Language and another language;
receiving said chunks via streaming from said server; and
emulating execution of said chunks thereby executing said application.
-
-
12. A computer-readable medium containing instructions for causing a computer system to perform method acts for executing an application on a client computer system, said application including computer-readable code, wherein said code is arranged in a programmed order, said method acts comprising:
-
connecting said client to a network;
connecting said network to a server computer system including said application;
establishing communication between said server and said client via said network;
monitoring said network by said server for requests from said client;
requesting at least one chunk of said code, wherein said chunk is included in said application that is required to execute said application by said client from said server wherein said chunks comprise code implemented in a computer-executable language selected from the group consisting of C Lanauage and another language;
identifying and locating said chunks by said server;
streaming said chunks in non-sequential order, with respect to said programmed order, to said client by said server;
emulating execution of said chunk by said client thereby executing said application; and
communicating completion of execution of said application to said server thereby shutting down connection between said client and said server. - View Dependent Claims (13, 14, 15)
locating said shared library by said server;
transmitting said shared library to said client; and
including said shared library during execution of said application thereby executing said application in cooperation with said shared library.
-
-
15. The method acts as set forth in claim 12 wherein said client caches said transmitted chunks thereby enabling reuse of said chunks.
-
16. An article of manufacture comprising a program storage medium having computer-readable code embodied therein for executing an application on a client computer system, said application being included in a server computer system and said application including computer-readable code, wherein said code is arranged in a programmed order and said application further including at least one chunk of said code, said article of manufacture comprising:
-
computer-readable program code for connecting a network to said client and said server;
computer-readable program code for requesting and receiving from said server to said client via said network said chunks that are streamed in non-sequential order, with respect to said programmed order, and that are required to execute said application, wherein said chunks comprise code implemented in a computer-executable language selected from the group consisting of C Language and another language; and
computer-readable program code for executing by said client of said chunks by emulation.
-
-
17. An article of manufacture comprising a program storage medium having computer-readable code embodied therein for executing an application on a client computer system, said application being included in a server computer system and said application including computer-readable code, wherein said code is arranged in a programmed order, said article of manufacture comprising:
-
computer-readable program code for connecting a network to said client;
computer-readable program code for connecting said network to a server computer system, said server including said application, communicating with said client via said network, and monitoring said network for requests from said client;
computer-readable program code for including in said application at least one chunk of said code, wherein said chunk is included in said application, wherein said chunk is required to execute said application, and wherein said chunk comprises code implemented in a computer-executable language selected from the group consisting of C Language and another language; and
computer-readable program code for streaming by said server to said client said chunks in non-sequential order, with respect to said programmed order; and
computer-readable program code for executing said chunks by said client by emulation.
-
-
18. A computer-readable data transmission for executing an application on a client computer system, said application being included in a server computer system and said application including computer-readable code, wherein said code is arranged in programmed order and said application further including at least one chunk of said code, said data transmission comprising:
-
a first portion connecting said client and said server to a network;
a second portion requesting by said client said chunks required to execute said application in non-sequential order, with respect to said programmed order, from said server via said network wherein said chunks comprise code implemented in a computer-executable language selected from the group consisting of C Language and another language;
a third portion receiving said chunks by said client from said server via streaming; and
a fourth portion emulating execution of said chunks by said client thereby executing said application.
-
-
19. A computer-readable data transmission for executing an application on a client computer system, said application including computer-readable code, wherein said code is arranged in a programmed order, said data transmission comprising:
-
a first portion connecting said client to a network;
a second portion connecting said network to a server computer system including said application;
a third portion establishing communication between said server and said client via said network;
a fourth portion monitoring said network by said server for requests from said client;
a fifth portion requesting by said client from said server at least one chunk of said code, wherein said chunk is included in said application, wherein is required to execute said application, wherein said chunks comprise code implemented in a computer-executable language selected from the group consisting of C Language and another language;
a sixth portion identifying and locating said chunks by said server;
a seventh portion streaming said chunks in non-sequential order to said client by said server;
an eighth portion emulating execution of said chunks by said client thereby executing said application; and
a ninth portion communicating completion of execution of said application to said server thereby shutting down connection between said client and said server.
-
Specification