(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