Provided by: tcllib_1.21+dfsg-1_all bug

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, and the package it describes, will undoubtedly contain bugs and  other  problems.   Please
       report  such  in  the  category  nameserv  of the Tcllib Trackers [http://core.tcl.tk/tcllib/reportlist].
       Please also report any ideas for enhancements you may have for either package and/or documentation.

       When proposing code changes, please provide unified diffs, i.e the output of diff -u.

       Note further that attachments are strongly preferred over inlined patches. Attachments  can  be  made  by
       going  to the Edit form of the ticket immediately after its creation, and then using the left-most button
       in the secondary navigation bar.

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>

tcllib                                                 1.0                                       nns_intro(3tcl)