Next: Existing mechanisms for network
Up: Overview of mechanisms for
Previous: Overview of mechanisms for
We identified several design issues that must be
addressed in any network class loading technique.
This section discusses these design issues and some of the
tradeoffs they imply.
- One network connection vs. multiple.
- When the client
requests class files and resources from the server, it could use a
separate network connection for each file, it could use a single
persistent network connection for all files, or it could use a fixed
number of persistent connections. Using a single persistent
connection is generally the best approach. Using separate connections
for each file is generally not a good idea since setting up a network
connection is expensive. It is not clear that there would be any
advantage to using multiple persistent connections, since
in class loading there is no obvious advantage to downloading files
in parallel.
- Transfer granularity: individual files vs. many.
- The ability to
send individual files is desirable because it allows the files sent by
the server to exactly match those needed by the client. As the
granularity of the transfer units increases, the probability that
unneeded files might be sent increases, as does the probability that
files will be sent in an order different from the request order.
However, small transfer granularity increases the likelihood of
of delays due to network latency, because the client must send
requests to the server more frequently.
- Using compression vs. not.
-
Compressing class files and resources is desirable when network
bandwidth is limited, since it results in transferring fewer bytes
over the network. However, the benefit of transferring fewer bytes
must be weighed against the runtime cost of performing the compression
and decompression.
- Compressing individual files vs. multiple.
-
Applying compression to multiple files is desirable since it offers
more opportunities for sharing redundant information between files,
thus increasing the compression ratio.
- Performing compression on-line vs. off-line.
-
Performing compression off-line is desirable because it reduces
the amount of computation required on the server.
- Pre-sending/prefetching vs. not.
- When classes and
resources are transferred on-demand, the client must send requests for
the files it needs to the server. If files are requested only at the
precise point they are needed, then client must pay the cost of
network latency for each request. This latency cost can be reduced or
eliminated if files are either pre-sent or prefetched prior to the
point when they are needed by the client. However, care must be taken
that files are not pre-sent or prefetched unnecessarily.
Next: Existing mechanisms for network
Up: Overview of mechanisms for
Previous: Overview of mechanisms for
David Hovemeyer
Tue Feb 27 18:43:09 EST 2001