The present invention relates to a system for handling client/server
traffic and communications pertaining to the delivery of hypertext
information to a client. The system includes a central server which
processes a request for a web page from a client. The central server is
in communication with a number of processing/storage entities, such as an
annotation means, a cache, and a number of servers which provide
identification information. The system operates by receiving a request
for a web page from a client. The cache is then examined to determine
whether information for the requested web page is available. If such
information is available, it is forwarded promptly to the client for
display. Otherwise, the central server retrieves the relevant information
for the requested web page from the pertinent server. The relevant
information is then processed by the annotation means to generate
additional relevant computer information that can be incorporated to
create an annotated version of the requested web page which includes
additional displayable hypertext information. The central server then
relays the additional relevant computer information to the client so as
to allow the annotated version of the requested web page to be displayed.
In addition, the central server can update the cache with information
from the annotated version. The central server can also interact with
different servers to collect and maintain statistical usage information.
In handling its communications with various processing/storage entities,
the operating system running behind the central server utilizes a pool of
persistent threads and an independent task queue to improve the
efficiency of the central server. The pool of threads are continually
maintained and monitored by the operating system. Whenever a thread is
available, the operating system identifies the next executable task in
the task queue and assigns the available thread to such task so as to
allow it to be executed. Upon conclusion of the task execution, the
assigned thread is released back into the thread pool. An additional I/O
queue for specifically handling input/output tasks can also be used to
further improve the efficiency of the central server.