A given Web++ client applet must first find a list of physical URLs that
correspond to replicas of every logical URL found in each HTML
resource. The list can be found in several ways:
- The client queries a name server to get the list of
physical URLs corresponding to a given logical URL. The name service
can be either independent of the Web servers or some of the Web servers
can also act as name servers. A scheme based on independent name
servers similar to the DNS service was proposed for binding of
Uniform Resource Names (URNs) to IP addresses [39].
- The server looks up all lists of physical URLs corresponding to
every logical URL that occurs in a requested HTML resource. The list is
piggybacked on the response sent to the client.
A drawback of the first scheme is that the client may have to
incur an additional network round trip to bind a logical URL to a
physical URL. The network round trip can be saved by caching the
binding information on the client, but such a solution leads to
several problems on its own (the interplay of dynamic replication and
cache consistency being the most prominent one). Since one of the
goals of document replication is to improve the response time
perceived by clients, we rejected this option.
The second scheme does not lead to any extra overhead for the client
to bind a logical URL. Moreover, since the majority of URL requests
can be predicted from the hyperlinks embedded in the HTML text, it
makes sense to optimize the binding scheme for this case. The
drawback of this scheme is that it is not clear how to resolve logical
URLs which are directly supplied by the end-user via e.g. File
Open browser menus.