[zcore]

zcore is a utility/library/programming paradigm where applications are designed via small utility modules, and are tied together with one central "core" module. Each one of these modules represents a specific operational function (possibly using one C function, or a small library of C functions that performs one given task). Because these modules are loaded into memory at run time, and can also be removed from memory at any time, they are similar to "hot-swapable" devices in a laptop or desktop computer. During a program's operation, a new version of the program (or perhaps just certain modules within that program) might be released. Traditionally, this would entail shutting down that program, performing the upgrade, and then starting it back up--that is, starting the new version up in place of the old. With hot-swapable modules, all that would need to be done would have the old modules removed from memory and the new ones loaded into memory. Please read a simple explanation as a metaphor for a simplified view of what zcore is attempting to do.

What can zcore do for me?
If you're an end-user, zcore can provide the ability to have the software you use automatically upgrade itself when a new version is released, while the current version is still running. Any zcore-enabled program will be able to make use of the zcore component map to locate and install newly released versions of its components, automatically!
If you're a software developer, zcore provides you with the ability to widely distribute important bug fixes, functionality enhancements, or any other product upgrade passively. By using the zcore component map, your software could be coded to automatically contact your component distribution server every hour, every day, every week, or however often you want. Once connected, the software would look for newer versions of the components it uses and, if it finds any, automatically download and install them.
Another option would be to simply distribute the core module for your application, and have zcore search out and locate the newest versions of the components it requires, saving you from distribution costs.

An exciting possibility zcore provides is the ability for programs to modify their own operation. Proprietary information about the operation of certain aspects of the program could be recorded, and later used to customize the behaviour of a specific module or group of modules. This automatic customization could result in quicker response times, faster computation rates, automatic enhancement that could take advantage of new system parameters, or perhaps even automatic bug fixes. "Smart" programs might "learn" how to perform a given operation more efficiently than was originally coded, and thus rewrite and install code to take advantage of this knowledge.


Daniel Reed <n@ml.org>
[Z]