A
client station on
computer network uses an
operating system such as JavaOS which is permanently stored at the
server rather than on storage media at the
client location. JavaOS is loaded and installed at the
client upon bootup of the client. The JavaOS is loaded and installed at the client upon bootup of the client. Once the basic
system is booted using local
firmware, and the base file systems on the network are enabled, an application can begin running, and when it needs to use a particular class file a request will be made through the
file system and will be routed over to a generic
file system driver, on the client, which will then determine, using a set of configured information, where this class exists; it will utilize the particular file systems available on to that booted client, whether it be NFS, or TFTP, to determine where the
server is and how to retrieve that particular class file. It will go ahead and force that operation to occur and the class file will be retrieved and cached locally on the client to be used by the application. In order to avoid loading unneeded or lesser-used parts of the JavaOS from the
server to the client memory at boot time, groups of classes are broken out of the monolithic image of JavaOS, as part of the
Java service
loader model (JSL). JSL-provided packages allow an URL prefix to be provided as part of a
package's configuration information. When a class method / data is requested by the
loader via the filesystem, if it is not already present, the URL prefix is used to lazily retrieve and cache that file in memory. This allows classes and data files to be delivered as needed, and significantly reduces the amount of data to be retrieved by TFTP by the client at boot time.