The design and implementation of an intentional naming system
This paper presents the design and implementation of the Intentional Naming System (INS), a resource discovery and service location system for dynamic and mobile networks of devices and computers. Such environments require a nam- ing system that is (i) expressive, to describe and make requests based on specific properties of services, (ii) respon- sive, to track changes due to mobility and performance, ( iii) robust, to handle failures, and (iv) easily configurable. INS uses a simple language based on attributes and values for its names. Applications use the language to describe what they are looking for (i.e., their intent), not where to find things (i.e., not hostnames). INS implements a late binding mech- anism that integrates name resolution and message routing, enabling clients to continue communicating with end-nodes even if the name-to-address mappings change while a session is in progress. INS resolvers self-configure to form an application-level overlay network, which they use to discover new services, perform late binding, and maintain weak consistency of names using soft-state name exchanges and up- dates. We analyze the performance of the INS algorithms and protocols, present measurements of a Java-based imple- mentation, and describe three applications we have imple- mented that demonstrate the feasibility and utility of lNS.