A naming system for feature-based service specification in distributed operating systems

The paper describes a naming system that allows a service to evolve or reconfigure in functionality by adding and removing features and still co-exist with its previous versions. The underlying naming model has two aspects: (1) (Attribute_name, Attribute_value) pair based characterization of service features which allows the meta information on a service to be represented as a collection of such pairs (as in X.500 and Universal Naming Protocol). At low level, the name server provides parse and match operations on the (attribute, value) pairs using which high level name binding operations, viz., name registration and name resolution, are constructed. (2) Data-driven communication paradigm which enables different versions of a client and server to communicate with one another. In this paradigm, a server matches the attributes requested by a client with those it supports, and invokes service specific functions named by the attributes. Since attributes refer to orthogonal features, client and server can evolve independently by adding or removing attributes and still communicate. With this model of specifying services, name server functions may be factorized from service specific functions and implemented in a generic fashion in terms of parse and match operations and function invocations. The paper also describes language support for the naming system and implementation issues.

[1]  Liuba Shrira,et al.  Lazy replication: exploiting the semantics of distributed services (extended abstract) , 1990, OPSR.

[2]  Norman Meyrowitz,et al.  Intermedia: The architecture and construction of an object-oriented hypemedia system and applications framework , 1986, OOPLSA '86.

[3]  Butler W. Lampson,et al.  Designing a global name service , 1986, PODC '86.

[4]  Stephen E. Deering,et al.  Host groups: a multicast extension for datagram internetworks , 1985, SIGCOMM '85.

[5]  Larry L. Peterson An overview of UNP , 1989, CCRV.

[6]  K. Ravindran,et al.  Correcting remote references to a server in distributed operating systems , 1991, IEEE INFCOM '91. The conference on Computer Communications. Tenth Annual Joint Comference of the IEEE Computer and Communications Societies Proceedings.

[7]  Keith A. Lantz,et al.  Towards a universal directory service , 1985, PODC '85.

[8]  David R. Cheriton,et al.  Decentralizing a global naming service for improved performance and fault tolerance , 1989, TOCS.

[9]  Arvind,et al.  Resource managers in functional programming , 1984, J. Parallel Distributed Comput..

[10]  Luca Cardelli,et al.  On understanding types, data abstraction, and polymorphism , 1985, CSUR.

[11]  Kenneth P. Birman,et al.  Reliable communication in the presence of failures , 1987, TOCS.

[12]  Ellis Horowitz,et al.  Fundamentals of Programming Languages , 1984, Springer Berlin Heidelberg.

[13]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

[14]  Douglas B. Terry Caching Hints in Distributed Systems , 1987, IEEE Transactions on Software Engineering.

[15]  David Notkin,et al.  A name service for evolving heterogeneous systems , 1987, SOSP '87.