
               BobWare Job Server For Novell NetWare 2.1x

   Copyright (c) 1990 by Campbell's Software Inc.  All Rights Reserved.




INTRODUCTION:

  This is a fully functional demonstration of a Job Server system based
  on Novell's Queue Management APIs.  While the system is fully functional,
  it is not the "real" system.  The only difference is that the program JSCON
  is replaced by JSDEMO, which displays annoying demo disclaimers.  Feel free
  to install, use, and distribute this software, keeping in mind the intent is
  for you to use it during a limited demonstration period not to exceed 90
  days.  Information is included at the end of this document that will allow
  you to obtain a licensed copy of this software through Campbell's
  Software Inc.  Use of this software after 90 days without the proper
  licensing agreement is strictly forbidden.

  All of the following documentation, terms and definitions, are meant to
  apply to this particular implementation of a job server for NetWare 2.1x
  networks and DOS 3.x workstations.


CONCEPTS:

  A job server is a workstation dedicated to performing DOS command line
  operations for client workstations on the network.

  A client is any user logged into the file server where the job server has
  been installed.

  A queue user is a client with the authority to place requests in a specific
  queue for processing by a job server.  This authorization can be explicit
  or implied.  Explicit authorization applies to a single user.  Implied
  authorization applies to a group of users.

  A job queue is a set of files which identify a queue user's request for
  processing, and information necessary for the job server to complete the
  request in an environment as close as possible to the queue user's, when
  the request was made.

  A queue server is a job server with the authority to process requests
  which have been placed in a specific queue by a queue user.

  A queue operator is a client with special privileges which allow queue
  maintenance operations to be performed.

  A queue job is a single request for processing and it's associated files.

  A queue log is a set of files which records the history of queue's activity
  and the results of queue job processing.


  There are four main functions required for the job server system:

      1)  A queue user makes a request for processing by creating
          a queue job and placing it in a queue.

      2)  A queue server polls it's assigned queues looking for jobs
          to be processed.  When a job is identified for processing
          the queue server creates a DOS and NetWare environment as
          close as possible to the queue user's when the request was
          made.  This includes DOS environment variables, network drive
          mappings, and NetWare security.  The request is processed
          and a queue log entry is posted.  The log entry contains
          information on the job's completion status and as much video
          output that could be captured while the request was being
          processed.  (See TECHNICAL INFORMATION below)

      3)  While a job is in the queue it is monitored and maintained
          through a job server console program.

      4)  Following it's completion a queue job's log entry is accessed
          and maintained through the same job server console program
          mentioned above.  A queue user has access to only his or her
          log entries.  A queue operator has access to all log entries.

  All queue job monitoring and maintenance is performed through the JSCON
  utility and can be performed from any workstation logged into the file
  server where the job queue resides.


BENEFITS:

  Using a job server to execute requests has several benefits in a network
  environment.  The following is a list of a few that immediately come to
  mind.  We hope you will identify more.  If you do please let us know.

  1) Submitting programs for execution on the dedicated job server frees
     your workstation for other activities.  This can be quite beneficial
     if you have programs that run for a significant amount of time.

  2) Programs that require special hardware resources (a 386, additional
     memory, a math coprocessor, etc.) can be submitted from any workstation,
     but will have the hardware resources of the job server available when
     they execute.

  3) Programs can be scheduled to run at a specific time on a daily or
     weekly basis.  This allows routine programs to be run automatically
     on the job server.



KEYBOARD CONVENTIONS:

  <Esc>         - allows you to backup to the previous screen from any
                  location.

  <Enter>       - selects or accepts current option or value.

  up/down arrow - moves up/down on menus, window displays, and browse files.

  <Page Up>     - moves up a "page" at a time on window displays and browse
                  files. Does not currently function on menus.

  <Page Down>   - moves down a "page" at a time on window displays and browse
                  files. Does not currently function on menus.

  <Home>        - moves to the top of a browse file.

  <End>         - moves to the bottom of a browse file.

  <F9>          - displays additional user log file options.

  <Shift><F7>   - prints log files.

  <Delete>      - deletes current selection.

  <Insert>      - inserts a new entry.


SETUP:

  Along with this readme file you should have received three (3) programs,
  JSEXEC.EXE, JSCON.EXE, and JSERVER.EXE.   You must be logged into the
  file server on which you are installing the job server as SUPERVISOR, or
  a SUPERVISOR equivalent user.

  If you have used Novell's PConsole utility (or any of their other
  "console" utilities) you should be in familiar territory.  Pressing
  <Esc> will back you out of the program from any point.


  1) Copy JSEXEC.EXE and JSCON.EXE to the SYS:PUBLIC directory of the
     file server on which you are installing the job server.  (These
     programs can also be copied to any directory to which a search
     mapping has been defined).  JSERVER.EXE will be used in the
     INSTALLATION section below.

  2) Flag the two (2) programs above SRO.

  3) Type JSCON at the DOS prompt and press <Enter>.  A menu titled
     "Available Options" with three selections will be presented.


  4) Select "Job Server Information" from the menu.  If this a first time
     installation you should be presented with an empty window titled
     "Defined Job Servers".  (If the window is not empty see TECHNICAL
     INFORMATION below before continuing).

  5) Press <Insert>.  A horizontal scrolling window will appear.  Enter
     any valid NetWare name for your job server and press <Enter>.  The
     name you entered should now appear in the "Defined Job Servers"
     window.  By repeating this step you can define additional job servers.

  6) Select the name of the job server you are installing from the list
     of defined job servers and press <Enter>.  The "Server Information"
     menu will appear.

  7) Selecting "Server Full Name" and pressing <Enter> will allow you to
     add a descriptive name up to 127 characters for the job server.
     "Home Directory" is for future use and can be ignored, HOWEVER A DOS
     DIRECTORY MUST BE DEFINED FOR THE JOB SERVER TO OPERATE.

  8) Select "DOS Directory" and press <Enter>.  In the horizontal window
     that appears type the full network volume and directory path where the
     version of DOS the job server will boot from is located.  Press <Enter>
     to record your entry.

     THIS IS THE DOS DIRECTORY WHICH CORRESPONDS TO THE VERSION OF DOS THE
     DEDICATED WORKSTATION FUNCTIONING AS THE JOB SERVER WILL BOOT FROM.
     THIS MUST BE DEFINED CORRECTLY FOR THE JOB SERVER TO OPERATE.

  9) Press <Esc> until you are returned to the main ("Available Options")
     menu.

 10) Select "Job Queue Information" from the "Available Options" menu.
     If this a first time installation you should be presented with an
     empty window titled "Defined Job Queues".  (If the window is not empty
     see TECHNICAL INFORMATION below before continuing).

 11) Press <Insert>.  A horizontal scrolling window will appear.  Enter
     any valid NetWare name for your job queue and press <Enter>.  The
     name you entered should now appear in the "Defined Job Queues"
     window.  By repeating this step you can define additional job queues.

 12) Select the name of the job queue you just defined from the list of
     defined job queues and press <Enter>.  The "Queue Information"
     window will appear.

 13) Select "Queue Servers" from the menu.  A list of "Assigned Servers"
     will appear, and should be empty if this is a first time installation.
     (If the window is not empty see TECHNICAL INFORMATION below before
     continuing).


 14) Press <Insert>.  A list of "Candidate Servers" will appear.  Any job
     servers you defined in step 5 will appear.

 15) Select the name of the job server you wish to be assigned to service
     this queue.  More than one job server can service a single queue by
     repeating steps 14 & 15.

 16) When you are done assigning job servers to job queues press <Esc> to
     return to the "Queue Information" window.

 17) Select "Queue Operators" from the menu.  A list of "Assigned Operators"
     will appear, and should be empty if this is a first time installation.
     (If the window is not empty see TECHNICAL INFORMATION below before
     continuing).

 18) Press <Insert>.  A list of "Candidate Operators" will appear.  All
     Netware users and groups are candidates. (If you have a combined total
     of more than 256 users and groups defined to your network see TECHNICAL
     INFORMATION below before continuing).

 19) Select the name of the user or group you wish to be assigned as a
     queue operator.  Assign additional users and groups as queue operators
     by repeating steps 18 & 19.  (SUPERVISOR and SUPERVISOR equivalent users
     are not automatically queue operators. You should assign at least one
     queue operator.  Special privileges granted to queue operators are
     discussed in THE QUEUE OPERATOR below).

 20) When you are done assigning queue operators press <Esc> to return to
     the "Queue Information" window.

 21) Select "Queue Users" from the menu.  A list of "Assigned Users" will
     appear, and should be empty if this is a first time installation.
     (If the window is not empty see TECHNICAL INFORMATION below before
     continuing).

 22) Press <Insert>.  A list of "Candidate Users" will appear.  All Netware
     users and groups are candidates. (If you have a combined total of
     more than 256 users and groups defined to your network see TECHNICAL
     INFORMATION below before continuing).

 23) Select the name of the user or group you wish to be assigned as a
     queue user.  Assign additional users and groups as queue users by
     repeating steps 22 & 23.  (SUPERVISOR and SUPERVISOR equivalent users
     are not automatically queue users.  You should assign at least one
     queue user.  Only these users will be allowed to place jobs in the
     queue)

 24) When you are done assigning queue users press <Esc> until you are
     prompted to confirm exiting the JSCON utility.

  Job server setup should now be complete.

  Job servers and job queues can be deleted by highlighting the appropriate
  name in the "Defined Job Servers" or "Defined Job Queues" windows,
  respectively.  Then press the <Delete> key and confirm or cancel your
  request.

  Queue servers, queue operators, and queue users can be removed from 
  a job queue in a similar manner from the "Assigned Servers", "Assigned
  Operators", and "Assigned Users" windows.



INSTALLATION:

  1) Create a bootable diskette with the version of DOS you entered for
     "DOS Directory" in step 8 of SETUP.  This will be the Job Server
     boot diskette.

  2) Create a CONFIG.SYS with appropriate entries for processing the
     job server will be required to do.

     The CONFIG.SYS file should be almost identical to the CONFIG.SYS
     used on queue user workstations, however the job server will load
     an additional COMMAND.COM and open two (2) files while processing
     jobs.  This could require additional DOS environment space and an
     increase in the FILES=nn entry in CONFIG.SYS.  See your DOS manual
     for more information on these entries.

  3) Load the appropriate NetWare shell files (IPX.COM & NET3.COM) on the
     job server boot diskette.  These should correspond to the Network
     Interface Card installed in the dedicated workstation acting as the
     job server.

     You should also place any device drivers the job server might require
     on the job server boot diskette. (e.g ANSI.SYS).

  4) Copy the JSERVER.EXE file to the job server boot diskette.

  5) Create an AUTOEXEC.BAT file.  The file should contain the following
     lines:

     PATH=A:\;
     IPX
     NET3
     JSERVER fileservername jobservername

     where "fileservername" is the name of the file server on which you
     are installing the job server and "jobservername" is the name you
     assigned to the the job server in steps 5 & 6 of SETUP.

     THE PATH STATEMENT IN THE AUTOEXEC FILE IS ESSENTIAL IN THIS VERSION
     OF THE JOB SERVER.

  6) Install a dedicated workstation to act as the job server, if this has
     not already been done.

  7) Boot the dedicated workstation acting as the job server from the job
     server boot diskette created in steps 1-5 above.


  The job server should boot up and indicate it has attached to any job
  queues it has been assigned to service.  The job server will then begin
  polling it's assigned queues.  A bar will grow and shrink across the
  bottom of the screen while the job server is idle.  (See TECHNICAL
  INFORMATION below for more information).

  Hitting any key on the keyboard will cause the job server to detach from
  its assigned job queues and exit.  This will happen immediately if it is
  idle and upon completion of the current job if it is processing.


JOB SUBMISSION:

  JSEXEC.EXE is the facility by which queue users place jobs in a queue for
  processing by the job server.  Type JSEXEC at the DOS command line and
  press <Enter>.  The following usage information will be output to the
  screen:


ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³                                                                             ³
³  BobWare Job Server Execution  v1.1.                                        ³
³  Copyright (c) 1990 by Campbell's Software, Inc.  All Rights Reserved.      ³
³                                                                             ³
³   Usage:                                                                    ³
³                                                                             ³
³     JSEXEC [-flag=value] . . . [-flag=value] <d:\path\filename>             ³
³                                                                             ³
³     Where <d:\path\filename> represents any valid network drive, path,      ³
³     file specification, and [-flag=value] represents any of the optional    ³
³     flags and associated values listed below.  Arguments may follow the     ³
³     filename specification.                                                 ³
³                                                                             ³
³                                                                             ³
³   Valid Flags:                                                              ³
³                                                                             ³
³     -s=<target job server name>         -q=<target queue name>              ³
³     -d=<execution date mm/dd/yy>        -t=<execution time hh:mm:ss>        ³
³     -c=<job comment (30 chars)>         -r <repeat execution daily>         ³
³     -w <repeat execution weekly>        -n <completion notification>        ³
³                                                                             ³
³  Example:  JSEXEC -q=queue1 -d=02/03/91 -t=18:00:00 compile program1.cob    ³
³                                                                             ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

    Figure 1.  In the example above  "compile program1.cob"  will be placed
               in job queue "queue1" and will not execute before February 3,
               1991 at 6:00 pm.



  To place a job in the queue for processing type JSEXEC at the DOS prompt
  followed by any flags you wish to include and the DOS command line you
  wish to be placed in a queue for execution, separated by spaces.  Notice
  that each flag is preceded by a dash ( - ) and those requiring a value
  are immediately followed by and equals sign ( = ) and then the value.

  No spaces should separate the dash, the flag itself, the equals sign, or
  the value.  All flags must precede the DOS command line statement.

  The -q=<target queue name> is the only required flag.  Optional flags
  allow you to select a specific job server for processing, an execution
  date before which the job will not be processed, an execution time before
  which the job will not be processed, a comment which will appear in the
  JSCON queue display and log display.  Flags are also included to allow
  you to schedule jobs to run daily or weekly after their first execution
  date and time.  The final flag allows you to request the job server to
  send a NetWare broadcast message back to you at the completion of a job's
  execution.


JOB MONITORING:

  Type JSCON at the DOS prompt and press <Enter> (This is the same utility
  used during the setup process).  Select "Job Queue Information" from the
  menu.  Select the queue name you wish to interrogate from the "Defined
  Job Queues" window.  Select "Currently Queued Jobs" from the "Queue
  Information" menu.

  A list of currently queued jobs will be presented.  Each job will have a
  status of "Adding", "Ready", or "Active" at the far right of each entry.
  You will rarely if ever see a job status "Adding", most will be "Ready",
  waiting for execution, and jobs currently executing will be "Active".
  Since the job server can process one job at a time, the number of "Active"
  jobs is limited to the number of job servers assigned to the queue.

  Move through the job entries by using <up arrow>, <down arrow>, <Page Up>,
  <Page Down>, <Home>, and <End> keys.

  If you wish to delete one of your own jobs, highlight the job to delete
  and press the <Delete> key.  You will be asked to comfirm your request.
  Select "Yes" to confirm the deletion.  Select "No" or press <Esc> to
  cancel the request.

  There are two (2) things of which you should be aware.  1) Queue users can
  delete jobs they have placed in the queue.  Queue operators can delete any
  job.  2) If you delete an "Active" job it will continue to execute on the
  dedicated job server machine.  The only way to abort a job is to reboot the
  job server machine itself.


  Additional information about a job queue can be obtained from the "Attached
  Servers" and "Queue Status" selections of the "Queue Information" menu.
  "Attached Servers" simply displays all job servers currently attached to
  the job queue being interrogated.  "Queue Status" will display the queue's
  internal NetWare Id, the number of jobs in the queue, and the number of job
  servers attached to the queue.  It will also indicate if users are allowed
  to add jobs to the queue, if job servers are allowed to service jobs in the
  queue, and if job servers are allowed to attach to the queue.


LOG MAINTENANCE:


  Type JSCON at the DOS prompt and press <Enter> (This is the same utility
  used during the setup process).  Select "Job Queue Information" from the
  menu.  Select the queue name you wish to interrogate from the "Defined
  Job Queues" window.  Select "Completed Jobs" from the "Queue
  Information" menu.

  A list of your completed jobs will be presented.  Each job will have a
  status of "Normal" or a DOS return code at the far right of each entry.

  Move through the log entries by using <up arrow>, <down arrow>, <Page Up>,
  <Page Down>, <Home>, and <End> keys.

  If you wish to view job execution output, highlight the job to view
  and press the <Enter> key.  You will be presented with a display of all
  of the video output the job server could capture during processing.
  (See TECHNICAL INFORMATION for information on limitations).

  If you wish to print a completed job's video output file, highlight the
  job to print and press <Shift><F7>.  The video output file will be directed
  to LPT1.  Use the NetWare CAPTURE command if you wish to direct this output
  to a network printer.  <Shift><F7> will also print the video output file
  if you are currently viewing it.

  If you wish to delete one of your log files, highlight the entry to delete
  and press the <Delete> key.  You will be asked to comfirm your request.
  Select "Yes" to confirm the deletion.  Select "No" or press <Esc> to
  cancel the request.

  There are two (2) things of which you should be aware.  1) Video output
  files with more than 4096 lines in them can not be viewed correctly,
  however you should be able to print them with no problem.  2) Along with
  the video output of a job, the last video output screen of execution is
  captured to the video output file.  This is the last 25 lines of the file.


THE QUEUE OPERATOR:

  A queue operator can monitor and maintain the queue and log files of any
  queue user.  Keep in mind that a queue operator is not automatically a
  queue user and must be defined as a queue user to be allowed to place jobs
  in a specific queue.


  Queue monitoring is identical to that of a queue user.

  To maintain log files for queue users other that yourself go to the
  completed jobs display as described above. Press <F9>.  You will be
  presented with a list of all users who have output logs for the queue
  you are currently interrogating.  Highlight the appropriate user and press
  <Enter>.  You will be presented with the selected user's log entries.
  Operation will then be identical to that described above.

  A user will not appear in the "Queue Log Users" window until at least one
  job has been processed on their behalf.

  To delete all of a user's log files press <F9> from the log entry display.
  Highlight the user whose log you wish to delete and press the <Delete> key.
  You will be asked to comfirm your request.  Select "Yes" to confirm the
  deletion.  Select "No" or press <Esc> to cancel the request.

  A queue operator also has the ability to globally control access to a queue
  by queue users and queue servers.  Select "Queue Status" from the "Queue
  Information" menu.  Pressing "N" or "Y" in the last three entries in the
  window will disable or enable, respectively, user or job server access
  to the queue as indicated.


ADDITIONAL QUEUES & SERVERS:

  To set up additional job queues and job servers follow the appropriate
  steps in the SETUP section above.  A single job server can service up to
  25 job queues.  A single job queue can be serviced by any number of job
  servers.


TECHNICAL INFORMATION:

  The following information is included to help you understand this product
  from a technical point of view.  It could be helpful in solving problems
  you may encounter (hopefully there will not be any) and give you insight
  into network resources utilized by this product.

  This product is based on Novell's Queue Management APIs.  Extensive use
  is also made of a number Novell's other APIs, including Bindery Services,
  Connection Services, File Server Services, Directory Services, File
  Services, and Message Services.

  All job queue, job server, queue user, queue operator, and queue server
  information is stored in the NetWare bindery.  Files necessary to setup
  job queues and job queue logs are stored in subdirectories of the SYSTEM
  directory on the SYS volume of your network.


  Each job server you install will require a connection on the file server
  where you install it, while it is operating.  To confirm this use NetWare's
  FCONSOLE utility and go to "Connection Information".  While the job server
  is operating, but idle, it will appear under its own assigned name in the
  "Current Connections" window.  While processing a job its connection will
  appear under the name of the client who requested the processing.  If you
  have limited the number of connections for a user and the job server is
  processing a job on behalf of this user, the user may not be allowed to log
  in to the file server.  This should have no effect if the user is logged in
  prior to the execution of the job by the job server.

  WHILE PROCESSING A JOB ON BEHALF OF A CLIENT THE JOB SERVER'S NetWare
  SECURITY IS CHANGED TO THAT OF THE CLIENT.  ALL DOS ENVIRONMENT VARIABLES
  AND NETWORK DRIVE MAPPINGS ARE ALSO IDENTICAL TO THE CLIENTS AT THE TIME
  THE JOB WAS PLACED IN THE QUEUE.  At the current time NetWare search drive
  mappings are included in the DOS PATH environment variable.  However, these
  are not true NetWare search drives.  This will be corrected in a future
  version.

  JSCON currently limits some display window's to a maximum of 256 entries.
  If you have a combined total of more than 256 NetWare Users and Groups
  defined you may encounter problems.

  A queue user is allowed to have no more than 255 log entries per job queue.
  If this limited is reached results will be unpredictable.  Deleting entries
  from the log should correct the problem.

  As much video output as possible is captured to the queue log video display
  file.  Some applications write directly to video memory, and while it may
  be possible, it is considered impractical to capture this information.  A
  queue log video display file is also limited to 4096 lines for viewing,
  however it should print with no problems.

  This product's bindery definition of Job Servers and Job Queue follows
  Novell's convention for NetWare bindery object types.  It is possible
  that other products may use the same convention.  If this product finds
  job servers or job queues in the bindery that have not been defined by
  this product it will display them.  However, they will not function
  properly.

  A job server could constantly poll job queues looking for jobs to process.
  However, this would put unnecessary stress on the file server.  The polling
  scheme used for this product could cause a delay in processing of up to
  30 seconds after the time a job is placed in a job queue.  While the bar
  on the job server is growing it is waiting to poll its queues for jobs to
  process.  When it reaches its maximum length the polling process will occur.

  Keep in mind the job server is almost identical to a user workstation.  To
  abort a job the job server must be rebooted, or the job must be aborted in
  in some other way at the dedicated job server machine.  If a job that
  requires keyboard input is placed in the queue, keyboard input must be
  supplied at the dedicated job server machine when the job is processed.

  At the current time the job server uses approximately 70K of additional
  memory while processing jobs.  This will be reduced in the future.

  The "Change Current Server" option on the "Available Options" of JSCON
  will allow you to change file servers.  However you must already be logged
  into or attached to additional file servers before entering JSCON.


ORDER INFORMATION:

  In its infancy this product was developed out of curiosity.  It was then
  developed to satisfy a specific need.  After realizing it could have
  a commercial impact it was completely rewritten as a generic job server
  product.  We now consider it to be in it's full blown adolescence and ready
  to enter the real world.  With your input we can bring it to its maturity.

  Our desire at this time is to fill a hole we believe to exist in the NetWare
  environment and most of all to please our customers.  This software is a
  demonstration only.  If you find it to be beneficial to your organization
  we hope you will order a licensed copy during the demonstration period of
  90 days.  Below we have listed the information necessary to obtain a licensed
  copy.  We are currently able to accept only checks or money orders.

  If you decide to order now, you will receive the next update free of
  charge.


  Future versions are expected to contain the following:

            1) Online Help
            2) Reduced Memory Requirements On The Job Server
            3) True NetWare Search Drive Mappings
            4) Any Suggestions You May Have, Which We Deem Practical


  These are subject to change and are somewhat dependent on your responses.



  To order:

     Print, fill out and return the ORDER.DOC file included with this
     demonstration package.

     Mail order form to:

         Campbell's Software Inc.
         10831 West Broad Street, Suite 217
         Glen Allen, VA  23060


     Make checks or money orders payable to:

         Campbell's Software Inc.


  Licenses are on a per file server basis.

  Site licenses for the BobWare Job Server are available.  Write Campbell's
  Software Inc. for more information.

  Questions and comments can be sent to Campbell's Software Inc. at the above
  address or directed to:

      CompuServe ID  75360,352  or 73167,3405


DISCLAIMER:

  Campbell's Software Inc. hereby disclaims all warranties relating to this
  software, whether express or implied, including without limitation any
  implied warranties of merchantability or fitness for a particular purpose.
  Campbell's Software Inc. will not be liable for any special, incidental,
  consequential, indirect or similar damages due to loss of data or any other
  reason, even if Campbell's Software Inc. or an agent of Campbell's Software
  Inc. has been advised of the possibility of such damages.  In no event shall
  Campbell's Software Inc.'s liability for any damages ever exceed the price
  paid for the license to use software, regardless of the form of the claim.
  The person using the software bears all risk as to the quality and
  performance of the software.


  NetWare is a registered trademark of Novell Inc.
