The programming model includes interfaces such as discovery, lookup, leasing, remote events and transactions which ease the task of building distributed systems. A service is a central concept within Jini. It is essentially an entity that can be used by a person, program or another service to perform a required task. The runtime infrastructure supports the discovery and join protocol that enables services to discover and register with lookup services. Discovery is the process by which anentity locates lookup services on the network and obtains references to them.
Join is the process by which a resource registers the services itoffers with lookup services.
In particular, the resource may post a service object with the lookup service. Such a service object, contains the Java programming language interface for the service including the methods that users and applications will invoke to execute the service, along with any other descriptive attributes. On the other hand, clients use the same protocol to locate and contact services. Thus, the discovery protocol isused to locate lookup services. Once an appropriate lookup service has been found, the client can query it to find the reference to the service that it requires.