Naming in large, heterogeneous systems
Michael F. Schwartz · 1987
When computers are connected via networks, and networks are joined into internets, the overall system effectiveness hinges on how well the basic network facilities are able to support communication and sharing among the interconnected systems. Of particular importance is the naming facility, which allows clients to use mnemonically meaningful names for the entities of interest in the internet, such as mailboxes, services, hosts, users, devices, and files. This thesis presents a new approach to naming in evolving systems that are composed of a heterogeneous collection of subsystems. Our goal is to reduce the cost of integrating new types of systems into an existing environment. Providing a name service in such an environment is difficult because each of the systems being integrated typically uses its own name service. The obvious approach is to implement a new standard to which existing subsystems must adhere. However, several problems render such standardization unsuitable for the environment we are addressing. We present a new approach based on integrating existing name spaces through a structure that separates global name space administration from knowledge of the semantics of naming in each of the assimilated subsystems. Roughly, our Heterogeneous Name Service (HNS) acts as a broker between clients and existing name services. A client presents a name to the HNS, along with an indication of the class to which its naming request belongs. The HNS determines the underlying name service that stores information concerning the name, and routes the naming request through an agent that understands how to access that name service for that query class. A major advantage of this approach is ease of integration: newly added system types can participate in the larger system without modification. At the same time, systems that use the global name service can take advantage of the services provided by new systems without modification. In addition, the model has broader applicability than the applications typically associated with naming. It can, for example, form the basis for a file system that integrates a heterogeneous collection of existing file systems. A prototype implementation of the HNS has been built and analyzed for its ability to support heterogeneous applications and caching at various levels.