A second style of service design is emerging where the interface is defined by objects that can be shared with the user of the service, and that hide the underlying protocols that are used to access the service. In general this paper will focus on the more traditional style, but we believe that the simplicity and better abstraction provided by Jini technology-embedded services will become increasing important in the world of millions of services and billions of devices. Most services have more than one interface by which they are accessed. Each is functionally distinct with its own APIs, protocols, and so on. For example, the interface used to manage and monitor a service is very different from the one that end users would access.
Some services also present their primary function in different ways through different interfaces.
While network services provide functionality through their interfaces, they also consume other network services. In fact, the primary users of many network services are other network services. By understanding how network services use each other, we can create a graph that shows the interdependencies among the network services in an environment. A basic e-mail service provides a good example of a traditional service whose interfaces use explicit protocols. As shown below, each interface may use a different authentication scheme depending on what's on the other end of that interface and what the particular requirements are.