Code Server Overview


Code Servers are REC Software's patented invention.
We developed the idea back in 1990, and soon saw that it represented the future of network computing.
We have built prototypes to prove the concept.
We have approached most of the major players in the operating system leagues, and some considerable interest has been shown.
To quote our contact at Netscape, "this idea changes the nature of software".

We offer on this page the technical framework that provides the context for a Code Server.

Most programs are broken into several smaller pieces, or modules.

To execute such a program, the operating system goes through the process of Dynamic Linking, wherein the modules are brought together before execution through association.

To do this, the operating system (OS) must:
    1. Find the modules of interest (by searching through its file system)
    2. Find out how they are interconnected (by examining their reference lists)
    3. Store this information in tables pointing to the modules (providing implicit dynamic links)

Click to enlarge this flowchart of dynamic linking
 

This entire process is recursive, because any module can refer to any other module.  The entire process has to be performed on every referred-to module.  The recursion stops when the current module no longer has any unresolved references.

A Code Server (CS) handles module requests from the operating system.  It finds the necessary modules, and returns their reference lists and locations.  This information is then used by the client's OS to associate the modules.  Note that a Code Server would work with any method of connecting modules which reference each other. So althought the patent doesn't speak to it, the arrangement will cope with references to data where the reference is coded into a code module or modules. This means that  a code-server-based operating system can automatically install most programs.

Click HERE for an enlarged picture of standard dynamic linking
Click to enlarge this flowchart of Code-Server-assisted dynamic linking

The Code Server communicates with its client (the OS, or another CS), via a direct byte stream (protocol).  This implies that the CS is a completely separate logical entity, even though it works intimately with its client.  This has two direct consequences:

    1.  The CS can make intelligent decisions as to what information the client requires based on a set of rules supplied by the client
    2.  The CS can be remote, on a different machine, as long as it can still communicate with its client

These two consequences make way for many applications, from automatic software distribution and installation, to anti-virus techniques.

Click HERE for an enlarged picture of the CS protocol

The real power lies in the fact that the entire process is automatic, because it is invoked by the OS every time a program is started or a DLL is explicitly loaded.

Back to Main - FAQ - Glossary