
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)
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
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