Claims
- 1. A computer implemented method to be executed using a general purpose computer, the computer implemented method capable of downloading an executable program from a networked storage to the general purpose computer, the method comprising:
downloading a core module, the core module includes classes necessary to run an engine of the executable program; installing the core module, the installed core module providing instant user functionality, the installed core module including code for,
requesting a class not associated with the core module; searching non-core modules of the executable program for the requested class; and downloading to the general purpose computer a non-core module containing the requested class while the executable program provides the user functionality.
- 2. The method as recited in claim 1, wherein the non core modules are contained within storage of one of the general computer and a networked source server.
- 3. The method as recited in claim 1, wherein the core module accepts instructions from a command line.
- 4. The method as recited in claim 1, wherein installing the core module includes;
downloading and installing a graphical user interface module for providing a user program options.
- 5. The method as recited in claim 1, wherein a code for the installed core module includes code for predicting the non-core module to be requested based upon a user's interaction with the executable program.
- 6. A method for downloading modules of an application in a multithread environment, the downloading occurring while a core module of the application is running, the running of the core module allowing user application interaction with features of the application, the core module executing a method comprising:
requesting a first module while downloading a second module; suspending the downloading of the second module; downloading the first module; and resuming the downloading of the second module after the first module completes its downloading; whereby the application running enables user application interaction of basic functions facilitated by the core module, and enables use of functionality provided by each of the first module and the second module upon completing of a background install while the application is running.
- 7. The method as recited in claim 6, wherein the background install proceeds according to a priority list.
- 8. The method as recited in claim 6, wherein the first and second modules are downloaded via the Internet.
- 9. The method as recited in claim 6, wherein the application is for use in conjunction with a printer.
- 10. The method as recited in claim 6, wherein the application program is accessed from a vendor's web site.
- 11. A method for downloading modules from a distributed network to a general purpose computer for an application, while the application is running on the general purpose computer, the method comprising:
enabling a selection of an application; identifying a core module for running an engine of the selected application; downloading and installing the core module; enabling an election of a feature associated with a non-core module of the application, in response to the election of the feature associated with the non-core module, the method includes,
determining if the non-core module is locally available on the general purpose computer; downloading the non-core module from the distributed network if the non-core module is not locally available; and installing the non-core module, the determining, downloading and installing being executed while enabling user access and interaction to installed features of the core module.
- 12. The method as recited in claim 11, wherein the identifying of a core module includes, determining if the core module is locally available on the general purpose computer.
- 13. The method as recited in claim 11, wherein enabling the selection of an application further includes,
accessing the application from a vendor's web site.
- 14. The method as recited in claim 11, wherein the determining, the downloading and the installing is enabled by logic contained by a download manager.
- 15. A computer implemented method for installing an application program on a general purpose computer, the method comprising:
determining if a core module is locally available on the general purpose computer, the determining including,
determining if the core module is the most recent version if the core module is locally available on the general purpose computer; in response to the core module not being available or is not the most recent version, the method further includes, downloading the core module, the core module includes classes necessary to run an engine of the application program; installing the core module, the installed core module providing instant user functionality; predicting a need for non-core modules; and downloading the predicted non-core modules while the application program is being executed.
- 16. The method as recited in claim 15, wherein the predicting a need for non-core modules is based on one of current user selections and statistical analysis of user behavior.
- 17. The method as recited in claim 15, wherein downloading the predicted non-core modules is performed in a multi-thread environment.
- 18. The method as recited in claim 15, wherein determining if the core module is the most recent version further includes,
uninstalling the core module if the core module locally available on the general purpose computer is not the most recent version.
- 19. A method for downloading a computer program from a network to a general purpose computer, the computer program being compartmentalized into modules, the method comprising:
downloading a core module, the core module includes classes necessary to run an engine of the computer program; installing the core module, the installed core module providing instant user functionality, downloading non-core modules according to a priority list; requesting one of the non-core modules which has not been downloaded or is not being downloaded in response to a user requesting a feature functionality; pausing the downloading of the non-core modules according to the priority list; starting the downloading of the one of the non-core modules containing the feature functionality; installing the one of the non core modules; and resuming the downloading of the non-core modules according to the priority list
- 20. The method as recited in claim 19, wherein a multi-thread environment is provided for downloading the computer program.
- 21. The method as recited in claim 19, wherein the priority list is contained on a networked source server.
- 22. The method as recited in claim 19, wherein the downloading the non-core modules occurs in a background as the computer program provides the user functionality.
- 23. The method as recited in claim 19, wherein a Java loader enables the downloading of the computer program.
- 24. The method as recited in claim 23, wherein a bootstrap loader starts the Java loader.
- 25. An apparatus for downloading an application, comprising:
a storage unit for storing coded instructions for executing the application; a monitor for presenting application features to a user, the application features associated with modules of the application, the modules containing the coded instructions for executing the application features; and a processor, the processor configured to process the coded instructions, the coded instructions are configured to download and install a core module of the application, the core module capable of running an engine of the application and instantly allowing user interaction with the application, wherein in response to the user selecting one of the application features associated with a non-core module, the non-core module is downloaded, installed, and enabled for immediate functional use along with functionality provided by the core module.
- 26. The apparatus as recited in claim 25, wherein the coded instructions include a priority list for downloading modules of the application.
- 27. The apparatus as recited in claim 25, wherein the application is downloaded through the Internet.
- 28. The apparatus as recited in claim 25, wherein the modules are downloaded according to a prediction based upon a user's interactions with the application.
- 29. The apparatus as recited in claim 25, wherein the application is for use with a printer.
- 30. A computer readable media having program instructions for downloading an executable program from a network, comprising:
program instructions for downloading a core module, the core module includes classes necessary to run an engine of the executable program; program instructions for installing the core module, the installed core module further including program instructions for,
requesting a class not associated with the core module; searching non-core modules for the requested class; and downloading a non-core module containing the requested class while the executable program provides the user functionality.
- 31. The computer readable media as recited in claim 30, wherein the installed core module further includes program instructions for,
predicting the class not associated the core module to be requested based upon a user's interaction with the executable program.
- 32. The computer readable media as recited in claim 31, wherein the predicting is based upon statistical analysis of observed user behavior.
- 33. The computer readable media as recited in claim 30, wherein the program instructions for downloading a non-core module is executed in a multi-thread environment.
- 34. The computer readable media as recited in claim 30, wherein the executable program includes a priority list for determining an order for downloading modules of the program.
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] This application is related to U.S. Patent Application No. ______ (Attorney Docket No. AP116HO), filed on the same day as the instant application and entitled “DYNAMIC CLASS PACKAGING.” This application is hereby incorporated by reference.