@setfilename simpbind.info
@settitle ILU Simple Binding
@ifclear largerdoc
@titlepage
@title ILU Simple Binding
@author Bill Janssen @code{<janssen@@parc.xerox.com>}
@author Mike Spreitzer @code{<spreitzer.parc@@xerox.com>}
@sp
@today{}
@sp
Copyright @copyright{} 1994 Xerox Corporation@*
All Rights Reserved.
@end titlepage
@ifinfo
@node Top, ,(dir),(dir)
@top ILU Simple Binding
@end ifinfo
@end ifclear

@cindex Simple Binding
@cindex Simple Naming
@cindex Name Service

This release of @system{ILU} includes an experimental simple binding/naming facility.  It allows a module to @dfn{publish} an object, so that another module can import that object knowing only its object ID (as defined in @ref{ILU Concepts}).  The interface to this facility is deliberately quite simple; one reason is to allow various implementations.  This release includes one (extremely preliminary) implementation.

The interface consists of three operations: @dfn{Publish}, @dfn{Withdraw}, and @dfn{Lookup}.  @fn{Publish} takes one argument, an @system{ILU} object.  @fn{Publish} returns a string that is needed to successfully invoke @fn{Withdraw}.  @fn{Withdraw} undoes the effects of @fn{Publish}, and takes two arguments: (1) the object in question, and (2) the string returned from @fn{Publish}.  In some langauge mappings, the string is not explicitly passed, but conveyed in the language mapping's representation of @system{ILU} objects.  @fn{Lookup} takes two arguments: an object ID and a type the identified object should have.  If the object with that ID is currently being published, and has the given type (among others), @fn{Lookup} returns that object.

The implementation shipped with this release of @system{ILU} uses a filesystem directory (specified in the file @file{@metavar{ILUSRC}/imake/local.defs}) to store information on the currently published objects.  To be useful in a distributed system, this directory must be available, by the same name, on all machines in the system.
