LSTSRV-L Archives

LISTSERV Site Administrators' Forum

LSTSRV-L

Options: Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Topic: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Chuck Kesler <CHUCK@NCSUVM>
Thu, 2 Jun 88 16:56:50 EST
text/plain (182 lines)
 
(This is the announcement I promised for the User Directory service we
are developing for LISTSERV here at NCSU.  Since Chuck did all the work,
Chuck gets to tell you all about it. -Mike Whitt. [log in to unmask])
 
 
We now have a beta version of our user directory service up and running
on [log in to unmask]  In no way is this service a finished product; in
fact, it's more of a prototype than anything else.  This announcement
is an invitation for interested parties to try it out and make suggestions
for improvement.
 
*** Background Information ***
 
The User Directory service, or USERDIR as I am calling it, is based on
LISTSERV's database capabilities.  It is accessed in the same way that
all other LISTSERV databases are accessed.  If you are unfamiliar with
this facility, then I suggest you read LISTDB MEMO, which is available
from your local LISTSERV.
 
USERDIR requires no modification to Eric's LISTSERV code; all of its
functions are accomplished through add on modules.  Most of the work
is done by LSV$DBUD EXEC , which is the database driver.  It is basically
a modified version of Eric's BITEARN database driver, LSVDBBN EXEC.
The actual data for the database resides in a NAMES-type file.
 
Users may add, modify, or delete their entries in the database through
the /USERDIR local command, which is handled by LSV$UDIR EXEC and
LSV$UDIR XEDIT.
 
The USERDIR database is intended only to provide directory services
for local nodes; it's not really intended to be a network-wide type
user directory.  The postmaster defines which nodes may register in
the directory.  For instance, I defined NCSU* and *.NCSU.EDU as valid
nodes; therefore, users at NCSUVM as well as NCSUMAE or NCSUVAX or
NCSUVX.NCSU.EDU may register in our user directory, while Joe Bitnet
will politely be told that he may not register at this node.
 
*** Registering in the User Directory ***
 
Users register by using the /USERDIR command.  Syntax is as follows:
 
   /USERdir   Add      <field | DD=ddname>         <value>
              Delete   <field | ALL | DD=ddname>
 
   where:
 
      Add
         causes the specified field in your directory entry to be
         added or replaced using specified value.
 
      Delete
         causes the specified field to be deleted from your
         directory entry.
 
      DD=ddname
         can be used when executing /USERDIR in a job file.
 
      field
         is one of the following:
            Address
            Department
            Name
            PHone
            POsition
 
Registration may either be done through interactive message or a batch job,
although using a job is more efficient simply because it was easier for
me to program it that way.  Examples follow:
 
   Batch job:
 
      //myjob job
      /userdir add dd=mydata
      //mydata dd *
      name Chuck Kesler
      address B17B Hillsborough Bldg;NCSU Campus;Raleigh, N.C.
      phone (919) 737-2517
      /*
 
   Interactive messages:
 
      tell listserv at ncsuvm /userdir add name Chuck Kesler
      tell listserv at ncsuvm /userdir add address B17B Hillsborough Bldg...
      tell listserv at ncsuvm /userdir add phone (919) 737-2517
 
*** Accessing the User Directory Database ***
 
All that you need to access the database is the standard LDBASE EXEC,
and you don't even need that is you know what LDBASE actually does.  I'm
also working on an extension of LDBASE EXEC which will greatly simplify
use of the database.  I'm also looking in to developing something
similar for VMS, MVS, and UNIX machines, but I'm not exactly sure how
much I'll be able to do to help those environments.
 
If you're on a VM machine and have LDBASE EXEC, you may query the
NCSUVM USERDIR database by first connecting to [log in to unmask] A typical
session would look something like:
 
   Enter command, or "QUIT" to exit:
   select chuck in userdir
 
   Search started...
   --> Database USERDIR, 3 hits.
 
   Enter command, or "QUIT" to exit:
   index
 
   Ref #  Real Name                 E-Mail Address
   ------ ------------------------- -------------------------
   000010 Chuck Kessler             CHUCK@NCSUVM
   000062 Chuck Kesler              NETOPRCK@NCSUVM
   000263 Chuck Kesler              [log in to unmask]
 
   Enter command, or "QUIT" to exit:
   print 263
 
   >>> Item number 263, dated 88/05/31 -- ALL
   Email: [log in to unmask]
   Name: Chuck Kesler
   Dept: Computing Center
   Addr: B17B Hillsborough Bldg;NCSU Campus;Raleigh, N.C.
   Phone: 737-2517 ext 45
 
Users on non-VM machines may use a LISTSERV batch job to perform a similar
task:
 
   //myjob job
   database search dd=commands
   //commands dd *
   select chuck in userdir
   index
   print all
   /*
 
Output will be returned in a file.
 
Keywords which have been defined for this database are: Address, Department,
Email, Name, PHone, and POsition.
 
 
*** Shortcomings of the LISTSERV User Directory Service ***
 
The biggest problem with the USERDIR database in its current form is that
there is no way easy way to police directory entries.  I do not check to
see that users enter valid data into their directory entries.  There is
nothing to keep a student from registering as the chancellor of the
university.  I have two possible solutions:
 
   1) Have directory entries manually entered by one person (such as the
      postmaster) at the request of the user.  Problem: that's a lot of
      work for someone.
   2) Define a list with trusted individuals (i.e. faculty, if faculty can
      really be trusted :-)), and only allow those users to add themselves
      to the directory.  Problems: the list can get big, has to be
      maintained, and leaves a lot of people out.
 
From a programming standpoint, I view the code I have written as very cheap.
However, its cheapness allowed me to develop and test this prototype over
a period of several days instead of weeks.  Everything seems to fit in
well with Eric's LISTSERV code, and appears to be very reliable.  My one
qualm is that I ended up using XEDIT to actually modify the USERDIR file
in response to /USERDIR commands.  This will not be a workable solution
for large databases, and XEDIT is also a dangerous thing to use in a
disconnected virtual machine.  I plan on eventually converting this
function to an assembler routine.
 
A less major problem is that although the LISTSERV database functions are
very powerful, they can also be cumbersome to a novice user.
 
I would like to hear any suggestions for solving these problems as well
as improving this service.  If you would like to install a USERDIR on
your LISTSERV for testing, then just drop me a note and I will send you
the necessary files along with the installation instructions.
 
One final note: we have started a new list, UDIR-L@NCSUVM, for
discussing aspects of user directory services are unrelated LISTSERV
concerns.  Subscription is open, so anyone interested may subscribe.
 
-Chuck
 Systems, NCSU Computing Center

ATOM RSS1 RSS2