Streaming modules
First Claim
1. A computer-implemented method of transmitting a software application comprising a collection of executably interrelated modules from a first computer system storing the application to a second computer providing an execution environment for executing the application, the method comprising:
- forming a module set by ordering a sequence of modules from the collection in accordance with predetermined criteria predicting an order of execution of the modules at the second computer; and
transparently streaming the predictively ordered sequence of modules from the first computer to the second computer, said sequence of modules being configured to be integrated at the second computer with other ones of the collection of modules to provide executable functionality of the software application.
5 Assignments
0 Petitions
Accused Products
Abstract
Computer-implemented methods of transmitting modules between a first computer and a second computer are disclosed. At the first computer, a module set is formed by selecting a sequence of modules from a collection of available modules. Each of the selected modules are associated with an application executing at the second computer. The selected modules may then be transparently streamed from the first computer to the second computer. The selection of modules is made in accordance with predetermined selection criteria and is independent of the second computer'"'"'s execution environment. At the second computer, received modules may be integrated with the executing application.
Systems for transmitting modules between a first computer and a second computer are also featured. The disclosed systems include a first computer and a second computer. The first computer includes means for executing an application, means for receiving a sequence of modules associated with the application while the application is executing, and means for integrating a first module in the received sequence with the application. The second computer includes means for storing a collection of modules associated with the application, means for selecting a sequence of modules from the collection, and means for transferring the selected sequences from the first computer to the second computer.
336 Citations
24 Claims
-
1. A computer-implemented method of transmitting a software application comprising a collection of executably interrelated modules from a first computer system storing the application to a second computer providing an execution environment for executing the application, the method comprising:
-
forming a module set by ordering a sequence of modules from the collection in accordance with predetermined criteria predicting an order of execution of the modules at the second computer; and
transparently streaming the predictively ordered sequence of modules from the first computer to the second computer, said sequence of modules being configured to be integrated at the second computer with other ones of the collection of modules to provide executable functionality of the software application. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
receiving a module request at the first computer from the second computer; and
modifying the predictive data stored in the streaming control database based on the module request.
-
-
6. The method of claim 5 wherein:
-
the streaming control database comprises transition records;
the transition records associate weighted values with transitions between selected modules in the collection; and
selecting a sequence comprises selecting an ordered set of modules based on transition record values.
-
-
7. The method of claim 6 wherein selecting based on transition record values comprises processing transition record information using a path determination algorithm;
- and modifying comprises modifying the weighted values.
-
8. The method of claim 5 wherein:
-
the streaming control database comprises a plurality of list records;
each of the plurality of list records identifies a sequence of modules in the collection; and
selecting a sequence comprises selecting one of the plurality of list records.
-
-
9. The method claim 1 wherein:
-
ordering the sequence of modules comprises ordering at the first computers, and the predetermined criteria comprises criteria stored at the first computer.
-
-
10. The method of claim 1 further comprising:
-
interrupting the streaming of the module set;
forming a second module set by selecting a second sequence of modules in accordance with the predetermined criteria; and
streaming the second module set from the first computer to the second computer.
-
-
11. The method of claim 10 further comprising:
-
transmitting status data from the second computer to the first computer; and
determining the second module set based on the status data.
-
-
12. The method of claim 10 wherein status data comprises data indicative of user input.
-
13. The method of claim 10 wherein interrupting comprises:
-
sending a module request from the second computer to the first computer; and
transmitting the requested module from the first computer to the second computer.
-
-
14. The method of claim 13 wherein the module request is sent in response to an attempt to execute code in the requested module prior to streaming of the requested module to the second computer.
-
15. The method of claim 13 wherein the program is a Java Applet and wherein sending the module request and transmitting the requested module comprise dynamically loading a Java class from the first computer.
-
16. The method of claim 1 wherein streaming comprises:
-
receiving a first module in the module set while the application is executing; and
storing the first module on local storage media at the second computer;
and wherein the method further comprises integrating the first module with the application.
-
-
17. The method of claim 16 wherein integrating the first module comprises integrating logic contained in the first module with logic contained in the application.
-
18. The method of claim 17 wherein:
-
the application comprises an interrupt statement;
logic contained in the first module comprises executable replacement code; and
integrating the first module comprises;
executing the interrupt statement, invoking an executor program, replacing the interrupt statement with the replacement code; and
executing the replacement code.
-
-
19. The method of claim 17 wherein:
-
the application comprises a first stub procedure;
the module set comprises a first code sequence; and
integrating the module set comprises operatively substituting the first code sequence for the first stub procedure.
-
-
20. The method of claim 19 wherein operatively substituting comprises altering the first stub procedure to enable application execution to transition from the application to the first code sequence.
-
21. A computer program residing on a computer-readable medium, comprising instructions for causing a computer to:
-
access a collection of executably interrelated modules, the modules being configured for integration together to provide software application functionality enabled by executing the modules in an execution-time-determined order;
access a database storing module selection criteria comprising data predicting an order of execution of the interrelated modules;
form a module set by selecting a sequence of modules from the collection in accordance with the module selection criteria; and
transparently stream the sequence of modules to a second computer. - View Dependent Claims (22)
retrieve a first module from the collection; and
send the first module to the second computer.
-
-
23. A computer program residing on a computer readable medium, comprising instructions for causing a computer to:
-
execute an application comprising functionality provided by executable modules that are configured to be integrated together in an execution-time-determined order;
transparently receive modules implementing functionality of the executing application, in a sequence determined at a server based on a predicted execution of the modules by the application;
store the received modules independent of the executing application; and
integrate ones of the received modules with the executing application in accordance with the execution-time-determined order.
-
-
24. A system for transferring a software application comprising a plurality of executably interrelated modules between computers, the system comprising:
-
1) a first computer, the first computer comprising;
a. means for executing modules of the application, b. means for receiving a sequence of the modules while the application is executing, and c. means for executably integrating a first module in the received sequence with the executing application to provide software-implemented functionality of the application; and
2) a second computer, the second computer comprising;
a. means for storing a collection of executably interrelated modules associated with the application, b. means for selecting a sequence of modules from the collection in accordance with predetermined criteria predicting an order of execution of the modules at the first computer, and c. means for transferring the selected sequences from the second computer to the first computer.
-
Specification