











                                 COUNT! v4.0
                                October 1993


                        Network Administrators Guide



       This document is intended for Network Administrators and
       assumes the audience is familiar with MS Windows v3.0 or above,
       MS DOS v3.3 or above, and basic network management principals.








                              Table Of Contents





          What is COUNT!...........................1

          Using COUNT!.............................2

          Setting Up COUNT! on a Network...........4

          Methods of Controlling Access............5

          Multiple Instance Management.............5

          Scrubbing License Files..................6

          LogFiles.................................7

          Installing Non-Network Software Versions.8

          USER Messages............................9

          Registering COUNT!......................10

          Transferring a License to COUNT!........10







          Count! is written and copyrighted by:

                   Ed Derzawiec
                   6 Sweet Fern Rd
                   Cape Elizabeth, ME  04107

          Feel free to send any suggestions for future program
          enhancements to this address.



                                 COUNT! v4.0
                        Network Administrators Guide
                                   Page 1


                               What is COUNT!

COUNT! is a MS Windows utility that enables you to abide to "simultaneous
use" licenses in a network environment.  This type of license allows you to
provide applications to a user community without buying a license for each
potential user.  The result is typically an 80% to 90% reduction in the cost
of the application.

Simultaneous use licenses:
   Unlike mainframe programs which base the fee on the number of potential
   users of a product, personal computer software licenses are often based on
   the number of people using a program at any point in time.  If the network
   provides a dozen applications to 50 users, it is probable that five to ten
   licenses for each application will be sufficient to meet the needs of the
   50 users without purchasing 50 licenses of each.

   Most major suppliers of personal computer software base their license on
   simultaneous use.  However, many of these (Microsoft for example) provide
   no means for maintaining the license.  Should you wind up in court, you
   are required to provide evidence that adequate precautions were taken to
   ensure that the simultaneous use license was not violated.

What does COUNT! Do:
   COUNT! launches programs in an MS windows environment and keeps track of
   the number of users.  It will enable you to enforce simultaneous use
   licenses.  It also provides features to make many programs which function
   poorly in a network environment behave better.  Finally COUNT! provides
   the network administrator detailed analysis on the use of licenses so that
   an appropriate number can be economically purchased to support user needs.

   COUNT! enables a user to access an application as easily as if it were
   installed on his local hard disk.  To do this, it will if necessary:

          Establish a network connection
          Modify the current DOS directory
          Check for license availability
          Execute the program
          Free the network license
          Disconnect the network connection

What COUNT! Won't Do:
   If a Windows application's primary (loading) executable file terminates
   before the application does, COUNT! has no way of knowing when the program
   ends.  COUNT! cannot meter the licensing of such programs.  It is also
   arguable that any such application would be impossible to meter licenses
   for.  I am not aware of any major commercial application software that
   exhibits this behavior.



                                 COUNT! v4.0
                        Network Administrators Guide
                                   Page 2

                                Using COUNT!

An end user needs no special knowledge to use COUNT!  He simply launches
applications normally through Windows.  A license dialog box appears
informing him the license is being shared.  If no more licenses are
available, the dialog box will inform him of that and provide a list of
current users.

In setting up applications to run under count, A network administrator needs
to:
        1) Set up an environment on user PCs to launch applications through
          COUNT! rather than directly.
        2) Create a COUNT!.ini file which controls how Count! launches
          applications

You also need to be familiar with the methods Windows uses to launch
applications.  The most common method is for the user to "double click" on an
application icon in a Program Manager group.  The second is to use the file
manager to launch an application with a selected data file.  A third is to
launch the application using the Program Manager's "Run command".

Using the COUNT! Command Line:
   To support any of the above, you need to use a valid COUNT! command line.
   The launched application is a parameter for COUNT!.  For instance, to
   launch Microsoft's Excel, the program line could be "COUNT!  MS_Excel".
   To launch Aldus' Persuasion, the program line could be "COUNT!
   Persuasion".  COUNT! would then do everything necessary to make
   appropriate network connections, start the application, and enforce
   software licenses.

Supporting Applications Launched via a Program Manager Application Icon:
   You will need to modify the vendor supplied installation procedure to
   modify the icon's "properties" to use COUNT! to launch the program.  The
   application icon program line properties can be changed using the
   following procedure:

          In Program Manager, select the program icon by clicking on it once
          with the mouse.

          Select File-Properties, from the Program Manager's menu.  A
          "Program Item Properties" dialog box should appear.

          Change the command line in the dialog box to launch the program
          through COUNT!  i.e.  "COUNT!.exe MS_Excel".

          You should also change the icon to the application's normal icon,
          which is typically in the main .EXE file of the application.  This
          is also done from the "Program Item Properties" dialog box. Press
          the "Change Icon" button and type in the file name containing the
          Icon (i.e. E:\EXCEL\EXCEL.EXE)

          The Program .EXE file may not be available to Windows if the
          network drive is not currently connected.  In this case you can
          substitute an icon from PROGMAN.EXE or MORICONS.DLL.  You could



                                 COUNT! v4.0
                        Network Administrators Guide
                                   Page 3

          also use a 3rd party utility to extract an icon from an application
          .EXE file, and make the icon file available to Windows.

Supporting Applications Launched via File Manager:
   You need to modify the "[extensions]" section of WIN.ini to associate
   COUNT! with the extension of data files your program runs.  Again, you
   must supply a command line such as "XLT=COUNT!.exe MS_Excel ^.xlt".
   Modifying user .INI files can be automated by using the Fix_INI! program
   which accompanies COUNT!

Supporting Applications Launched via Program Manager's Run Command:
   The user would have to enter a correct COUNT! command Line in Program
   Manager's "RUN" dialog box.

How COUNT!.INI Controls the Launching of Applications:
   The COUNT!.INI file controls what COUNT! does in launching an application.
   COUNT!.INI is created and maintained by the Network Administrator using
   any ASCII editor, such as notepad.  It consists of a number of
   applications "Sections" containing keywords describing how to launch the
   application.  Each section begins with the ApplicationName in square
   brackets.  You can use any ApplicationName you like so long as it is less
   than 32 Characters.  Keywords can be any of the following:
       ConnectDrive=Drive:,Network_Path,Password
          (Only Windows 3.1 and above support this command.  You can use
          "Connect" to support Windows 3.0)  The Password is optional.
          However, the comma separator must be included.  You can use "*" as
          the Password and the User will be prompted to provide one.  If The
          Drive and Network service are already in use, this command is
          ignored.  Network Drives which are connected with this command are
          Disconnected when the user exits the application unless
          DisConnectDrive=No.
       DisConnectDrive=Yes or No.
       Connect=Network connection command (you would issue at a DOS prompt.)
          The Connect and Disconnect KeyWords are provided to support Windows
          3.0, or for Networks incompatible with Windows 3.1 network
          management features.
       Disconnect=Network disconnection command
       StartDirectory=Starting directory.
          This will override any directory specified in the property's of a
          Program Manager Icon.
       Execute=Program invocation command.
       CountFile=R/W file which holds the current users/license counts.
       LogFile=R/W file which tracks license use for the application.
       MaxUsers=Number of users that can use the program simultaneously.
       MaxTime=Number of minutes of program use before Count! reminds the
          user to free the application license.
       UpdateLicense=Number of minutes between updates of the CountFile.  The
          default is 5.  A 0 inhibits updates.
       SkipLicenseMsg=Yes or No. If, Yes, COUNT bypasses its initial
          dialog informing the user of the licensing activity and immediately
          launches the application.  The default is No.

       All KeyWords other than Execute are optional.



                                 COUNT! v4.0
                        Network Administrators Guide
                                   Page 4


   If a CountFile is used, A DOS environment variable must exist prior to
   entering Windows which provides a user name.  This is accomplished by the
   DOS SET command as follows:

          "SET Name=UserName"

   By default, the Environment variable COUNT! uses to identify the user name
   is "NAME=".  You can specify a different environment variable to be used
   by adding a [Defaults] Section to COUNT!.ini, and adding the keyword
   "NameEnvVar=AnyName".  "AnyName" is the environment variable COUNT! will
   use to identify the user.

   The UserName must be unique to each network node.  It is typically
   assigned in a the Autoexec.Bat or Network Startup File.

   Below is an example COUNT!.INI file.

       [Defaults]
       NameEnvVar=Name

       [MS Excel]
       Connect=USE E:\\MyServer\ExcelProgram /R Execute=E:\EXCEL\Excel.EXE
       Disconnect=USE E: /D

       [MS Project]
       ConnectDrive=L:,\\MyServer\MSProject,, Execute=L:\WinProj\Project.EXE
       StartDirectory=c:\Project
       CountFile=Q:\Licenses\Licenses.Dat
       MaxUsers=10
       MaxTime=120


                       Setting Up COUNT! on a Network

COUNT!.EXE, COUNT!.INI, SCRUB.EXE, and CountMgr.DLL need to be placed in a
common network directory accessible to all users.  Users should be granted
READ ONLY access to these files.

If a CountFile is used to monitor or meter access (via MaxUsers), a common
user READ/WRITE area needs to be made available for this file.  Similarly, If
LogFiles are used to Track and analyze license use, these also need to be
placed in a user READ/WRITE area.  COUNT! will create these files as
required.

Also, as mentioned previously, A DOS environment variable must exist
(NAME=UserName) if a CountFile is used.  It is suggested that this be created
in each nodes Autoexec.Bat or Network Connection.Bat file.



                                 COUNT! v4.0
                        Network Administrators Guide
                                   Page 5

                        Methods of Controlling Access

There are two ways to use COUNT! to enforce simultaneous use licenses.  One
method is to put each application you want to control access to in a unique
network file service, and place a limit on the number of connections to this
service.  COUNT! could then connect to the service before starting the
program, and disconnect when done. The server would perform the license
counting/metering.

The above method is the most secure method of controlling access.  However,
there may be situations in which you cannot or prefer not to create unique
network services for each application.  You can then use COUNT!'s MaxUsers
keyword to control access.  You can also use both methods simultaneously if
you want to provide users with friendlier error Messages when denied access
to applications.

When a program is launched, COUNT! first checks the CountFile (if specified)
to see if the number of current users is less that the MaxUsers defined in
COUNT!.INI for that application.  If so, COUNT! adds an Entry to the
CountFile similar to the one below:

     [MS Project]
     John Doe=09:33:27 02/12/92

The timestamp is updated every 5 minutes unless overridden with the
UpdateLicense Keyword.  The Entry is removed when the user exits the
application.

If no Licenses are available when using a CountFile, the user will get a list
of currently active license holders.


                        Multiple Instance Management

Windows enables a user to run multiple copies of an application
simultaneously as long as the application itself permits this.  COUNT! fully
supports this feature and will only reserve a single network license for each
user workstation no matter how many instances of the program he is running.
CountMgr.DLL manages this activity as necessary.  Network connections made
via the Connect or ConnectDrive KeyWords will be maintained as long as at
least one instance of the application is active.



                                 COUNT! v4.0
                        Network Administrators Guide
                                   Page 6

                           Scrubbing License Files

If you use a CountFile, periodic maintenance is required to remove inactive
licenses.  Licenses become inactive when applications are terminated
abnormally, such as rebooting the PC while the application is in use.  When
this occurs, the license file entry for that user is not freed until that
same user runs and exits the application again.

The CountFile could be maintained with any ASCII editor by deleting lines
identifying inactive licenses.  However, there is an easier way.  A
supplemental program, SCRUB.EXE, is supplied which automatically removes
inactive licenses.  In addition, Count! will start SCRUB whenever a User is
denied access to an application for lack of an available license.

SCRUB works by examining the CountFile, waiting a specified time and then
reexamining it.  If the license entries are not updated in that time, they
are assumed to be inactive and removed.  By default SCRUB waits for the
UpdateLicense interval+1 minute.  The extra minute allows for programs which
might take total control of the PC for some period of time.  For instance, If
Excel takes several minutes to recalculate a spreadsheet, it may not allow
COUNT! to update the CountFile during that period.  (Windows 3.x is Not Pre-
emptive.)

If you feel 1 minute is not sufficient, you can override this by specifying
an larger interval in COUNT!.ini  Add a section called [SCRUB] in the file,
followed by lines containing AppName=Interval.  An interval less than
UpdateLicense + 1 minute will be ignored.  A interval of 0 will disable
Scrubbing for the specified application.

When SCRUB is running, an Icon identifying the time remaining will be
displayed on the Windows Desktop.

As mentioned, COUNT! will automatically run SCRUB when a user is denied
access to an application due to lack of an available license.  In addition, a
Network Administrator may want to periodically run SCRUB, perhaps placing it
in his/her Windows startup group.

If SCRUB is run without any parameters, it will scrub the CountFile of all
applications listed in the [SCRUB] section of COUNT!.ini  For example, if the
following section appears in COUNT!.ini, running SCRUB.EXE will automatically
scrub the licenses for MS_Excel and MS_Project.

       [SCRUB]
       MS_Excel=1
       MS_Project=1


If you need to, you can scrub an individual application by including it as a
parameter on SCRUB's command line.  (i.e. "SCRUB MS_Excel")



                                 COUNT! v4.0
                        Network Administrators Guide
                                   Page 7

                                  LogFiles

LogFiles provide valuable information to the network administrator on how
licenses are being used for each application, and by whom.  It is highly
recommended that you use LogFiles for each application to:

     Keep track of the average time an application is used.
     The typical number of licenses in use at any time.
     The number of times a license has been denied.
     The use by Individual.


Because of the size of these files, it is recommended that a separate file be
used to log each application.  If you follow this recommendation, each
LogFile will consist of an application total use section, followed by
individual user sections.

While you can use LogFiles without CountFiles, the log information will be
somewhat limited if you do so.

In the example below, Excel has been used a total of 1062 minutes in 54
sessions.  4 of those sessions terminated abnormally or remain in use.  (Did
not complete).  2 of the 3 licenses are commonly in use.  The average user
was connected 21 minutes, and since the log was started, 09/30/93, one user
was denied access.

In the subsequent sections the activity of each user is identified.  In this
example, Ed_Derzawiec has used Excel twice, and been denied access once.

       [MS_Excel]
       LogStarted=22:37:44-09/30/1993
       MaxUsers=3
       DeniedAccess=1
       3_users=1
       2_users=5
       1_users=6
       nConnects=54
       nCompletes=50
       ConnectTime=1062
       AvgConnectTime=21

       [MS_Excel.Ed_Derzawiec]
       nConnects=2
       nCompletes=2
       ConnectTime=6
       AvgConnectTime=3
       DeniedAccess=1
       ...



                                 COUNT! v4.0
                        Network Administrators Guide
                                   Page 8

                  Installing Non-Network Software Versions

Most software available today installs very easily in most network
environments.  However, every so often you will run into an application that
does not offer a networkable version, or will not install properly on your
network.  In such situations, you can often install the software for network
use using the following procedure.

From a client PC, provide Write access to the Network drive you would like
the application installed upon, giving it the same DOS drive letter the user
will eventually see it as.  You may also need to provide Write access to the
Windows directory on the server if Windows is being shared over the network.

Install the software to a network drive following the vendor's instructions
with the following exceptions.

   1) Copy the client's WIN.ini and System.Ini files as Win.OLD and
     System.OLD.  Also copy the Autoexec.Bat and Config.Sys files.

   2) Make copies of the client's Windows and System Directories and the
     server's Window system directory if appropriate
     (ie DIR c:\Windows >Win.Dir).

   3) Install the Software.

   4) Compare the .INI files and directories to the original saved versions.
     (ie FC Win.OLD Win.ini).  Note any changes.  Typically, these changes
     are entries added to the [Extensions] section of WIN.ini, applications
     sections added to WIN.ini, and perhaps a few DLLs added or updated in
     the Windows System Directory.  Many applications change the Path
     variable in the Autoexec.Bat file.  In most cases, this change is not
     required.

   5) Make these same changes on each client PC that will run the application
     by copying or editing files.  Fix_ini!.Com and Patch!.Com are very
     useful utilities in automating this process.

   6) If the REG.DAT file in the windows directory on the client PC was
     modified, some special attention is required.   REG.DAT's primary
     purpose is to support OLE and Drag/Drop capabilities.  To provide this,
     the application must be registered in REG.DAT of each client.  You
     cannot simply copy the revised REG.DAT file to each client.  First check
     the Application directory for an Application.REG file.  If it exists,
     simply RUN it from Program Manager on each client PC.  If the
     application does not have a .REG file, you will need to examine how the
     installation procedure modified the REG.DAT file (using RegEdit.EXE) and
     manually make the changes on other clients.



                                 COUNT! v4.0
                        Network Administrators Guide
                                   Page 9

                                USER Messages

There are a few messages COUNT! passes to the user that a Network
Administrator needs to be aware of.  These are covered below:

   "All Licenses for this application are currently in use!"  A user will get
   this message when all licenses set by the MaxUsers parameter are in use.
   They will also get a list box identifying users so they can try to free up
   a license on their own.

   "Please Exit AppName IMMEDIATELY!  License VIOLATION!"  Through an
   Application error or user tampering, the license reserved for this user in
   the CountFile has been erased.  A user should Never get this message.  It
   should be looked into by the Network Administrator.

   "You have exceeded the recommended time limit for this application and are
   reminded to free this license when you are finished so that others may use
   the program."  A user will get this message if he uses the program beyond
   the MaxTime variable.

The remaining messages should not normally be seen by a user, but may arise
in setting up applications to run under COUNT!

   "Could Not Connect (to Drive)"  A network Error caused by an incorrect DOS
   drive or Network file service specification in COUNT!.ini, or
   unidentifiable network connection problem.

   "Drive In Use on Different Service"  A failure to connect to the
   requested network service in COUNT!.ini because the requested Drive is
   already being used for a different network service.  You should not set up
   two network applications to share a DOS drive letter for different file
   services.

   "Could Not Execute"  Execution of the application failed.  Most often this
   is caused by an error in COUNT!.ini or perhaps a DOS PATH Error.

   "Could Not Find COUNT!.ini"  COUNT!.ini is not in the same subdirectory as
   COUNT!.EXE.

   "Count Not Load CountMgr.DLL"  CountMgr.DLL is not in the same
   subdirectory as COUNT!.EXE.

   "No Application Specified"  No ApplicationName was specified on the COUNT!
   Command Line.

   "No Program to Execute in COUNT!.ini"  No "Execute=" was included.

   "Name Environment Variable Not Defined!"  You MUST have a Name Environment
   variable defined if you are using a CountFile.



                                 COUNT! v4.0
                        Network Administrators Guide
                                   Page 10

                             Registering COUNT!

COUNT! is copyrighted software and all rights are reserved by the author.
You are free to evaluate the product for 30 days to determine its suitability
to your needs.  Use beyond 30 days requires registration.

Anyone with the conscience to use COUNT! will want to register it.  A license
to COUNT! enables you copy and use the software on a single server for up to
100 Users.  The cost of the license is $59.  If you would like to register,
please fill out the form on the next page.

In return, you will be sent a diskette with a registered version of the
software.




                      Transferring a License to COUNT!

Upon registering, you will receive a license number.  To license the
software, you will need Read/Write access to the directory where COUNT!.EXE
is located.  From Windows Program Manager, use "File Run" and place in the
command Line "Drive:\Path\COUNT!.EXE /L".

You will prompted you for your company and server name.  You are limited to a
total of 50 characters, so you may have to abbreviate.  If the name appears
truncated in the Main dialog box, you can reinstall the license.



                       COUNT! v4.0 User Registration Form

NAME:               ____________________________________

Company:            ____________________________________

Street:             ____________________________________

Town, State, Zip:   ____________________________________

Please register me for (____) copies of COUNT!.  Enclosed is $59.00 for each
copy (plus 6% Sales tax for Maine residents).

          Preferred Media:  5.25"(360K) ____  3.5" (720K) ____

Please make checks payable to:
          Edward Derzawiec
          6 Sweet Fern Road
          Cape Elizabeth, ME  04107

Signature:   ____________________________________

In signing this form I agree:
  1. Not to make copies of the registered software received for purposes outside
     of my use on a single network server.

  2. Not to modify the software without written consent of the author.

I welcome your comments on the merits or limitations of COUNT!, or enhancements
you would like to see added.

_______________________________________________________________

_______________________________________________________________

To improve the testing of COUNT!, please answer the following:

     Server Type:
          Operating System:   DOS ___, OS2 ___, VMS ___, UNIX ___
                              NT ____, Other _________________

     Network OS:  Novel ___, Vines ___, Pathworks ___, Other ________

Nodes:
     PC/XT (8086/8088) ____,   AT (286) ____,  (386/486/SX CPU) ____
     Display: Mono, ____, CGA, ____ EGA, ____ VGA, ____  Color ____

     Windows Version ____

Applications COUNT! is Used For:

______________________________________________________________

=================================================================
Do not write below this line:

Serial number licensed to above user: ____________
