Microtopia - Code Server Applications

Software Installation and Distribution:

One of the most obvious advantages to a Code Server setup is the automation of software installation.  Upon each request for a module, the Mini-CS will produce the necessary association information, whether by searching its own module tables, the client's hard drive and CD-ROM, or querying a network Code Server.  If the software exists already on the client's own hard drive, the Mini-CS need look no further.  A Code Server can also pull in data files, as it views them as code files with no external references.  Every single file request can go through the Code Server if desired.  Install programs are forever eliminated.

Also, instead of shipping many different versions of a product, a software company will package them all into one and let the decisions be made on the host machine.  A Code Server ensures installations bring only the pieces requested by the client over the network, reducing the download time, disk space, and maintenance required.  The same goes for installations from a CD-ROM - a client-specific version could be installed,  and if the client ever needed something from the CD again, they could even request it over the network - meaning that a given CD would be used once per install.

The whole implementation is seamless and works with every application back to Win 3.0 and OS/2 1.0 - the client would hardly even notice that the Code Server was there. The whole setup looks like this:

Installation Speed

The Code Server approach is a great way to get around the problems that existing systems have from bottlenecks on slow networks. For more details see here.

Software Updates

Often, to obtain an update to a piece of software, the whole program must be downloaded again, even if only 10% of the files have changed.  A Code Server allows updates to be incremental, and only the changed modules need to be downloaded.  The whole process is automatic: every set number of hours/executions/requests a Code Server checks the status of a module against a Code Server closer to the original.  This means that a developer simply posts an update, and the whole network will receive it because of the checking procedure invoked by module requests.  The bandwidth required to check for an update is very small - it could even be just enough to compare results of checksums and set flags accordingly.  This is essentially Push technology in reverse (Pull) - people learn about updates only through execution of the un-updated program.  Of course, it can be set by the client to be automatic, and the updates taking place without user intervention.  This is the ideal mode for set box top distribution.

Distribution of New Software

When there is a new update that none of the current modules require, such as an add-on component or a new scenario, Push technology could be enabled.  The update message (flag) would be sent down the tree of Code Servers, and if clients chose to adopt that new module, all other new modules associated with it would be gathered by the usual process.  This is much the same as how initial installations of software would work: the user would try and execute the first module (be it through a link on a website or a program on a CD), and after association, the Code Server would ensure that every other necessary module came through by the time the user needed to execute them.

ISP's would become "Software" rather than "Service" providers.  Anyone with a Code Server could pay a subscription fee to obtain software, be they client or ISP, and another fee to distribute it (i.e. primarily for ISP's).

Anti-Piracy:

Code Servers allow programs to become much more machine-specific, making software much less "piratable" because what works on one machine won't work on another.  This could work very well with the new serial numbers in Pentium III processors, because the Code Server could stamp the code with them.  Licensing is also facilitated in that a user could download and store 99% of the software, and pay a monthly subscription fee for a "key" module that unlocks the program, but expires at month end.  It is relatively easy to secure a powerful machine such as a server, and thus the Code Server network would be an efficient control system.  Code Servers could also public-key-encrypt and transfer code files for a particular user or group.

AntiVirus Techniques:

The internet has brought with it a host of new viruses, against which the only real protection is an anti-virus program (we wanted to mention some but decided to be impartial).  Virus checkers typically consume valuable CPU resources, as they need to be embedded deep into the operating system (e.g. with .VxD's) in order to function.  A Code Server would eliminate the need for this, and check against viruses in two ways:

1.  To ensure that code files on a computer are not corrupt, each time a requested module was executed, its checksum is compared to the checksum of the same file on the Code Server.  This could be integrated with the update-check procedure described above.

2.  To ensure that the original code is clean, it can be produced/translated/compiled on demand at the Code Server, preventing hackers from patching it, and making their mission near-impossible.

With the Code Server technique, virus-infected files will quickly and automatically be replaced by the original, from the original source.

Email - Main - Applications - FAQ - Glossary