Naming
Last updated May 23, 1995.
Naming is one of the most important and most frequently overlooked
areas of computer science. In computing it is rumoured:
Everything is a naming problem.
The Web offers an excellent example of the power of naming!
Concepts
Sticks and stones can break my bone, but names can never hurt me.
A name is a symbolic representation of a "thing".
The thing could be an object of some sort, or an action to be
performed. A thing can have multiple names. A name only has meaning
within a particular naming context. A name
space is the set of all possible potential names in a
particular context. The naming domain is the set of
all possible things that can be named in a particular context (the
reverse of standard mathematical terminology). A
binding is a mapping from a particular name to a
particular "thing". Within a context a name has at most one binding.
Resolution, or name lookup, turns a name into the
thing it represents. An attributive name is a name
whose resolution returns the object in question, or provides a name
for the object in a different context. If this new name can then be
used to access the object the new name is an address.
An invocation name is a name whose resolution causes
an action to be performed.
It is possible for a name to refer to a context. A
structured or composite name is formed by combining
the name of a context with the name of a thing in that context.
General information on naming:
- ANSA
APM.1003.01 The ANSA Naming Model provides a good explanation of naming
- CERN
Naming Design Issues
- USPTO (join the LPF!)
The patent office in its typical brain damaged fashion has granted all
sorts of trivial patents on naming:
- 5,457,630 Name resolution method for a distributed database system
- 5,325,524
Locating mobile objects in a distributed computer system, DEC,
lookup caching
- 5,313,646
Method and apparatus for a translucent file system, Sun, aka TFS
- 5,301,337
Distributed resource management system using hashing operation to
direct resource request from different processors to the processor
controlling the requested resource, BBN, fuck this!
- 5,239,647 Data storage hierarchy with shared storage level,
IBM, DASD mainframe file system name space
- 5,224,205 Method of combining architecturally dissimilar
computing networks into a single logical network, IBM, federated
naming
- 5,151,989 Directory cache management in a distributed data
processing system, IBM
- 4,851,988 Loosly-coupled computer system using global
indentifiers to identify mailboxes and volumes, Wang
- 4,825,354 Method of file access in a distributed processing
computer network, AT&T
- 4,718,005 Distributed control of alias name usage in networks,
IBM
Distributed Naming Systems
Current distributed naming systems:
- DNS: The Internet Domain Name System primarily
maps from hostnames to IP addresses. Has a good proven track record.
- CCITT X.500 is a
baroque directory service that allows database entries to be looked up
using attribute value pairs.
- whois++
Might be used to provide a URN->URL mapping.
- Hesiod?
Naming systems for the Web:
- IETF URI Uniform Resource Identifiers.
Working group is defining URLs, URNs, and URCs. URNs will be long
lived names that a lookup service can maps onto a URLs to retrieve a
document. URCs will incoporate bibliographic information. URI
related resources:
- Handles.
Quietly being worked on by CNRI. Much closer to being real than the
official IETF efforts. Uses a hashing scheme to spread the load.
- Location Independent File Names.
Focus is on mirroring and allowing copies of the same file at
different sites.
- My own ideas
- See also: Web Technology and Beyond -
current and future Web technology
Other future distributed naming systems:
- XFN: X/Open Federated Naming Specification
- Endorsed by Sun, IBM, HP, OSF, DEC, HP
- Derived from "Ivy" developed by Sun
- Defines composite names, and a generic address container for objects
- Able to map from a name to an address
- Only if system knows how can it then use address to access the object
- Complex, 177 routines!!! Rejoinder from vasu
- Order #P403, $70, X/Open, 1010 El Camino, Menlo Park, +1 415 323 7992
File Systems
What's in a name? That which we call a rose, by any other name would
smell as sweet.
Romeo and Juliet (Act II, scene ii), William Shakespeare
File systems are naming systems too!
Distributed Operating Systems
Naming is the glue holding everything together in a distributed
operating system:
- Chorus is a distributed OS developed in France
- System calls uses fixed size sparse capabilities to name the
object being manipulated
- Objects can either be local or remote
- Chorus is a solid production OS
- ftp://ftp.chorus.fr/pub
- Plan 9 treats everything like a file
Odds and ends
I don't know how to spell miscellaneous :-)
Odds and ends that don't belong anywhere else:
Have any questions or comments? thanks!
Back to Web Technology and Beyond.
Or Gordon's page.
Or other resources at base.com.