In Chapter 14, we discussed the RMI registry. In this chapter, we’ll build on that discussion to explore naming services in general. The goal of the chapter is to help you understand just what a naming service is, and how they’re used in distributed computing. We’ll also implement a new and more flexible naming service. As part of doing so, we’ll discuss threading and bootstrapping issues again, this time from an applied perspective. And finally, I’ll introduce an important design technique known as federation. By the end of this chapter, you’ll have a much better understanding of naming services and of how to build multithreaded servers.
Naming services have a long and varied history in distributed computing. Examples of modern naming services include:
This is how the Internet resolves logical names such as “www.oreilly.com” into IP addresses. Because it is used everywhere, and must handle extraordinary loads, DNS is a very simple protocol with limited query functionality. But it does map logical names to IP addresses and is, more or less, the definitive example of a naming service.
This is a protocol and API definition developed at the University of Michigan. It is commonly used in large enterprises for authentication (e.g, for storing information about employees in a way that’s easily accessed by computer applications).
This is defined as part of ...