NAME¶
nns_intro - Name service facility, introduction
DESCRIPTION¶
nns (short for
nano nameservice) is a facility built for the
package
comm, adding a simple name service to it. It is also built on
top of
comm, using it for the exchange of messages between the client
and server parts.
This name service facility has nothing to do with the Internet's
Domain Name
System, otherwise known as
DNS. If the reader is looking for a
package dealing with that please see either of the packages
dns and
resolv, both found in Tcllib too.
Tcllib provides 2 applications and 4 packages which are working together and
provide access to the facility at different levels.
APPLICATIONS¶
The application
nnsd provides a simple name server which can be run by
anybody anywhere on their system, as they see fit. It is also an example on
the use of the server-side package
nameserv::server.
Complementing this server is the
nns client application. A possible, but
no very sensible use would be to enter name/port bindings into a server from a
shell script. Not sensible, as shell scripts normally do not provide a
comm-based service.
The only case for this to make some sense would be in a shell script wrapped
around a Tcl script FOO which is using comm, to register the listening port
used by FOO. However even there it would much more sensible to extend FOO to
use the nameservice directly. And in regard on how to that
nns can be
used as both example and template. Beyond that it may also be useful to
perform nameservice queries from shell scripts.
The third application,
nnslog is a stripped down form of the
nns
client application. It is reduced to perform a continuous search for all
changes and logs all received events to stdout.
Both clients use the
nameserv::auto package to automatically hande the
loss and restoration of the connection to the server.
PACKAGES¶
The two main packages implementing the service are
nameserv and
nameserv::server, i.e. client and server. The latter has not much of an
API, just enough to start, stop, and configure it. See the application
nnsd on how to use it.
The basic client, in package
nameserv, provides the main API to
manipulate and query the service. An example of its use is the application
nns.
The second client package,
nameserv::auto is API compatible to the basic
client, but provides the additional functionality that it will automatically
restore data like bound names when the connection to the name service was lost
and then reestablished. I.e. it automatically detects the loss of the server
and re-enters the data when the server comes back.
The package
nameserv::common is of no interest to users. It is an
internal package containing code and definitions common to the packages
nameserv and
nameserv::server.
All packages use the
uevent package for the reporting of special
circumstances via events, and reserve the uevent-tag
nameserv for their
exclusive use. All their events will be posted to that tag.
INTERNALS¶
The document
Name service facility, client/server protocol specifies the
protocol used by the packages
nameserv and
nameserv::server to
talk to each other. It is of no interest to users of either the packages or
applications.
Developers wishing to modify and/or extend or to just understand the internals
of the nameservice facility however are strongly advised to read it.
BUGS, IDEAS, FEEDBACK¶
This document, will undoubtedly contain bugs and other problems. Please report
such in the category
nameserv of the
Tcllib SF Trackers
[
http://sourceforge.net/tracker/?group_id=12883]. Please also report any ideas
for enhancements you may have for either package and/or documentation. Please
also report any ideas for enhancements you may have.
SEE ALSO¶
nameserv(3tcl), nameserv::auto(3tcl), nameserv::common(3tcl),
nameserv::protocol(3tcl), nameserv::server(3tcl), nnsd(3tcl), nss(3tcl)
KEYWORDS¶
client, name service, server
CATEGORY¶
Networking
COPYRIGHT¶
Copyright (c) 2008 Andreas Kupries <andreas_kupries@users.sourceforge.net>