







Software COP
The Ultimate Software License Enforcer

Version 1.1













Designed and Coded by:
	Blaze Technologies
2100 S. 7th St.
Suite 223
Rapid City, SD 57701

Email:  sschlome@silver.sdsmt.edu
	sbauer@silver.sdsmt.edu
BBS:    605-394-5778
























Copyright:      Copyright (c) 1993 by Blaze Technologies

	Other brand and product names are trademarks or registered trademarks of 
their respective holders.

License 
Agreement :     This software is provided on a trial base for a 45 day period.  This is 
intended to allow 30 days for evaluation of this product and 15 days to 
order the product.  If you do not purchase this product after the 45 day 
evaluation period, then you must remove all copies from your system.  By 
using this software you are agreeing to these terms.

	Once you have purchased this software, you will be given a personalized 
copy for your site.  This purchased copy may not be exchanged, sold or 
distributed.

Warranty:       This software is sold on an as-is basis.  Blaze Technologies specifically 
disclaims all warranties, expressed or implied.  In no event shall Blaze 
Technologies be liable for any loss of profit or any other damage including 
but not limited to special, incidental, consequential or other damages 
including damages to a third party.  By using this software you are agreeing 
to these terms.  If these terms are not agreeable, do not use this software.










Table of Contents
Synopsis        4
Installation    5
Usage   6
Wrapping Overlayed Programs     10
Limitations     11
Support 12
Appendix A      13
Ordering Instructions   16
Order Form      17




Synopsis

	As the growth of networks has exploded, complying with concurrent usage limits of 
a program has grown very difficult.  Also, tracking the usage of an application that has 
been installed on a LAN is even more difficult.  As it turns out, software publishers are 
becoming more aggressive about license enforcement.  This has been demonstrated by the 
increase in the number of  'raids' and lawsuits filed against corporate users.  Formerly, the 
lack of reliable tools made software metering almost impossible, but with the birth of the 
Software COP, the goal of software license compliance is easy to obtain.

	Software COP allows you to accomplish both goals of compliance and economy.  
It does this by allowing you, as a system administrator, to monitor the demand of a 
application and limit how many users can concurrently execute an application.

	For monitoring the demand of an application, Software COP provides various 
report formats. These reports consist of:

*       Overall usage for all monitored applications.
*       Daily application usage histogram.
*       Applications used by user.
*       Users that have used an application.

	Along with the monitoring of  the demand, you can limit the actual number of 
concurrent users for an application.  Since Software COP was designed to be very 
versatile, a couple of methods have been included to ease software metering.  These are:

*       Pooled metering - One big limit that encompasses everyone.
*       Group metering - This is where the system administrator can assign 
different limits to individual Novell Netware groups.

	With all of these features one would assume that Software COP has grown very 
large.  However, the design goals of the Software COP provided for these benefits:

*       Low memory overhead when running metered DOS applications - 
typically less than 1K.  This was accomplished with the aid of Ralf 
Brown's  spawno routines to reduce the memory overhead when 
shelling to other DOS programs.
*       No need for any TSRs. 
*       No need for any special program to be loaded with Windows load= line.
*       No need for a PC dedicated to metering software.
*       Allows for the waiting of a program's availability.
*       Easy, simple installation on already established networks.

	Software COP will help you compile all the information you need to allocate your 
resources efficiently while documenting your network's compliance with current license 
limits



Software COP Installation

	The installation of the software cop is very simple since there are not any dedicated 
machines that need to be set up or NLMs that need to be loaded.  The following steps will 
guide one through the installation of the Software COP administration program onto the 
LAN system.  
	The administration program, SOFTCOP.EXE, can either be installed on a server or 
on one's local hard drive.  The benefit of having the program on a local hard drive is that 
the security is a little better since it is harder to get at.  Other than that the software 
installation is the same for a server or a local hard drive.
	Before you begin the installation you should decide what the name of the log file 
will be. Also, you must decide which directory on the file server that you are going to use 
for the log files.  The users must have full privileges to the log file directories so that they 
can log their data in the log file and merge the individual temporary files together.

These are the general steps that are needed to install the Software COP:

1)      Copy all of the files from the distribution media to the directory where you 
decided to install the Software COP administration program, SOFTCOP.EXE.  
These files are: SOFTCOP.EXE, DOSD.EXE and WIND.EXE.  These files are the 
main files that Software COP uses.  There will also be several other document files 
in the directory.  Then create the needed log file directories on the file server(s).  
Remember that the users must have full rights to these directories for the logging to 
work correctly.  Copy the DLL's to a directory that is in all of the users' paths on 
the server such as the public directory.

2)      In the directory where SOFTCOP.EXE was installed, a simple configuration 
file must be created.  This configuration file, SOFTCOP.CFG, tells the 
administration program what the valid log file paths and file names are.  Below is a 
sample SOFTCOP.CFG file:
					LOGFILE SCLOG.DAT
					FS1\SYS:TMPFILES\LOGS\
					FS2\SYS:TMPFILES\LOGS\
					FS3\SYS:LOGS\

The first line contains the keyword LOGFILE and then the name of the log file.  
After the first line, the names of the paths for the log files are listed.  There must be 
at least one path for each server volume that is going to have programs protected by 
Software COP.  From the example file above, one can see that the paths include 
the server name, volume name and then the path with a final backslash.  There can 
only be one log file path per file server - volume combination.  After entering all of 
the log files, save the file with the name SOFTCOP.CFG, and the installation is 
complete.

Congratulations!!    Software COP is now installed!!   You are ready to wrap the programs that you would 
like to protect!


Software COP Usage

Using the Software COP menu system is trivial.  Simply use the arrow keys to move 
around the different menu items, and hit <Enter> to make the selection.  <Esc> or <Left> 
can be used to move backwards in the menu scheme.

MANAGE APPLICATION
Under this menu item, software metering management is made easy.  GSS files can be 
created and altered with the EDIT GSS FILE menu selection, and the wrapper can be 
installed for the desired program with WRAP APPLICATION.

* EDIT GSS FILE
The GSS file contains the information that the wrapper programs use to carry out the 
wishes of the LAN administrator.  It is recommended that the GSS files be edited 
with the Software COP administration program only and not by hand unless the 
section in Appendix A has been thoroughly read and understood.

After the EDIT GSS FILE menu item has been selected, a file dialog box with a 
directory structure will appear.  Select [DRIVES] to go to the file server on which the 
program to be metered is located.  Once inside the desired file server, simply traverse 
the directory tree with the arrow keys and <Enter>.  To see the .EXE, .COM, and 
.BAT files that are located in the selected directory, press <Right>.  Once the desired 
file has been located, press <Enter> to edit (or create if the GSS file does not exist) 
the program's GSS file.

SPECIAL NOTE ON BATCH FILES:
If the application to be metered is a batch file, and the GSS file for that application 
is not found, a dialog box will appear asking for a dummy filename.  This dummy 
filename will be the new name of the batch file when the batch file is wrapped with 
the WRAP APPLICATION menu selection.  The renamed batch file will be hidden, 
and a new batch file will be created with the name of the original application.  This 
new batch file calls a hidden DOS wrapper, which calls the original batch file 
correctly.  

When in the GSS file editing dialog box, use <Tab> or <Shift-Tab> to move 
between fields.  Pressing <Enter> will also move between the fields unless the 
START MESSAGE field has the focus, then the dialog box will save the information 
upon approval.  The GSS file will be flagged with the ROSH attributes.  

The follow section describes the various fields inside the GSS file editor dialog box.

DESCRIPTION - A line of text describing the program.

VERSION - The version number of the program to be metered.  It is necessary for 
metering enforcement that the program's version be included if there are different 
versions of a program being run on a file server.

OS TYPE - The operating system type of the metered program.  It is important that 
this option be set to the proper OS type so that the correct program wrapper is 
installed.  (Except when a BAT file is being wrapped, then the Software COP 
administrative program will put the correct BAT entry in the GSS file.)

ENFORCE - Used to limit the number of copies that are concurrently run on a file 
server.  

WAITING - When this option is set to YES, the user can wait until a license of a 
program becomes available to use.  

MAX WAIT TIME - The maximum number of minutes that a user is allowed to wait 
for the next available license of an application.

POOLED - Determines if maximum license usage should be based on a single 
number or on the individual number of copies allowed for each individual group.
The groups are ignored if pooling is on.

MAX POOLED - Sets the maximum number of concurrently used licenses.

LOGGING - Determines if program usage data is gathered or not.

GROUP - This is a list box of the different groups and their allocated licenses.  Use 
<Insert> to add a group and <Delete> to remove a group.  To change the number of 
licenses available for a group, press <Enter>.  It is all right if the number of copies 
for a group is left at zero if POOLED is on, otherwise, that group will not be able to 
run the program.

START MESSAGE - This message is displayed whenever a program is run.

DENIAL MESSAGE - This message is displayed to the user when all of the available 
licenses of an application are in use.


* WRAP APPLICATION
Wrapping the application occurs when this menu option is selected.  Once the 
application has been located with the file selection dialog box, the Software COP 
administration program will attempt to wrap the application.  If a corresponding GSS 
file is found, Software COP will rename the original application as filename.@@@ 
and will flag it with the ROSH attributes.  Once the application has been renamed 
and hidden, Software COP copies either the DOS wrapper or the Windows wrapper 
to the applications directory and renames the wrapper as the original application 
name.  For batch files, see the special section introduced above.

It may be possible that Software COP cannot rename or flag a file.  If this is so, the 
file that was to be wrapped is probably in use.

STATISTICS
Statistics gathering is one of the main tools that a successful LAN administrator uses to 
determine application usage on a file server.  With the statistics gathering options of 
Software COP, intelligent decisions can be made on the purchasing of additional licenses 
for a specific program.

* SELECT LOG FILE SERVER...
Selection of the desired log file is accomplished here.  It is necessary to pick a log file 
before any statistics gathering can be performed.

* SELECT LOG PERIOD...
The start and end dates (inclusive) of the log period in which statistics information is 
gathered is set with the familiar __/__/__ format.  This log period is not used in the 
DAILY APPLICATION USAGE item.

* OVERALL USAGE FOR ALL APPLICATIONS
This option is used to obtain the total usage for all applications found in the specified 
log period.  After this menu option has been selected and the log file processed, a list 
of application usage statistics will be displayed.  Here are the meanings for the 
headers:        
		
		DESCRIPTION - Application description.
		ENF - Is enforcing on? (F - False, T - True)
		LIM - Maximum limit if the licenses are pooled.
		TUT - Total usage time in hours:minutes:seconds.
		AUT - Average usage time in hours:minutes:seconds.
		REQ - Number of requests.
		C - Number of successful completions.
		DL - Denials because the maximum number of licenses were being used.
		DG - Denials because the user was not a member of the required group(s).

Use <Page-Up>, <Page-Down>, <Up>, and <Down> to navigate through the list.  <F2> 
saves the data to a file in tab delimited form, and <F3> will print to the desired 
printer port.

* DAILY APPLICATION USAGE...
A usage histogram of the maximum concurrent licenses for an application in use 
during each hour of a day can be obtained with this menu item.  After the desired 
date has been entered, Software COP will look for all of the applications that were 
used during that date.  Once the desired application has been selected, the usage 
histogram for that application will be displayed on the screen.  Use <F2> to save the 
data in tab delimited format for inclusion in a spreadsheet.  <F3> will print out a text 
graph to the desired printer port.

* APPLICATIONS USED BY A USER...
With this menu option, the overall usage statistics for the applications used in the 
specified log period by a certain person can be determined.  This statistics gathering 
option could be useful if it is necessary to charge users for their usage of an 
application.  Disclaimer:  Although we(Blaze Technologies) have tested the usage 
times and do believe that the recorded usage time information is correct, Blaze 
Technologies  assumes no responsibility regarding arguments a user may have 
about his or her usage time of an application.

* APPLICATION'S USER LIST...
This menu option gives the user names and their usage statistics about an application 
that they have used during the selected log file period.  See the disclaimer under the 
APPLICATIONS USED BY USER section.

ABOUT...
Developer and copyright information about Software COP can be found here.

EXIT
Leave the services of Software COP.


Wrapping Overlayed Programs

	Most overlayed programs will work correctly when they are wrapped.  However, 
there are a few programs that will not work since they try to load the overlay from the 
executable file using a hard coded file name.  These programs can still be metered by the 
Software COP, but these types of programs require special wrapping instructions which are 
given below.

1)  Create a batch file that will run the problematic overlayed program.

2)  Now wrap the batch file instead of wrapping the original executable.  This 
allows the overlaid program to keep its original name.

3)  Now run the batch file instead of directly calling the executable.

That is all there is to protecting the problematic overlayed programs.



Limitations

Metering DOS Programs
	There have not been any problems found with the metering of DOS programs.

Metering Windows Programs
	There is one small problem with metering windows applications - dealing with 
programs that have a loader.  These type of programs (i.e. Charisma 2.1) have a small 
loader program that loads the actual program.  This loader then terminates after the actual 
program is loaded.  Software COP cannot monitor when the actual program is running and 
therefore cannot log the length of the program's execution nor can it tell how many copies 
are running at any specific time.



Software COP Support







	Please send questions or comments concerning the use of Software COP to:
		
		via Internet mail:
		
		sschlome@silver.sdsmt.edu
		or
		sbauer@silver.sdsmt.edu

		via CompuServ mail:
		
		72154,1463

		via US Postal mail to:
		
		Blaze Technologies
		2100 S. 7th St.
		Suite 223
		Rapid City, SD, USA 57701

		via Voice Phone: 

		(605) 394-5777




	Appendix A
Wrapper configuration file options (filename.gss)

	This section is provided for information only.  We do not plan to have you change 
any of the parameters by hand.  The Software Cop Administration program will create all 
of the necessary entries in the configuration file.
	This configuration file is located in the same directory as the program that is being 
metered as a read only, hidden and sharable (rosh)  file.  It also has the same name as the 
original program except that it has the extension gss.

[LIMITS]
POOLED FALSE

[MESSAGES]
START This software is protected by Software COP!
DENIAL Sorry, all available licenses are in use.

[GENERAL]
OS DOS
VERSION 2.05
DESCRIPTION MEM for DOS
LOGFILE FS1LOG.DAT
LOGPATH FS1\SYS:LOGS\
WAITING 67
ENFORCE TRUE
NAME FOOBAR.EXE

[GROUPS]
OURGROUP        1

Figure A-1


	The above excerpt is the complete configuration file for the control of the program 
foobar.exe.  The following section will describe the individual fields of the configuration 
file.


[LIMITS]
	This section of the configuration file tells the wrapper if the usage of the program is 
pooled or if the usage is controlled by the individual groups.  The keyword POOLED is 
followed by either FALSE, meaning that the entries in the GROUPS section control the 
usage of the program, or the number of concurrent users that are allowed to use the 
program.  The syntax for the parameter is as follows:

POOLED  FALSE   (entries in the GROUPS section control the program) 
or
POOLED  ###             (where ### is the number of concurrent copies that can be used).

[MESSAGES]
	This section contains the supervisor definable startup and denial messages that the 
user will see.  Had the supervisor chosen to leave out a message then the keyword is left 
out of the configuration file.  Otherwise, the format for the messages are as follows:

START   This is the only license!       (Message shown on startup)

DENIAL  Sorry we are out of licenses.   (Message shown on denial)

[GENERAL]
	This section contains the general information that the wrapper program needs to log 
and to monitor the application.

OS      ####            (Where ### is either DOS, WINDOWS or BAT)

VERSION  ####   (Where ### is up to a 4 digit number including the decimal point)

DESCRIPTION     Notepad for Windows     (Description of the program being wrapped)

LOGFILE ###             (Where ### is the name of the log file including extension)

LOGPATH ###             (Where ### is the path where the log file is stored including the 
				fileserver's name)

WAITING ###             (Where ### is the number of minutes that the user can wait for a 
				program to become available)

ENFORCE ####            (Where ### can be TRUE or FALSE - This determines if the 
				limits are enforced or not)

NAME            ####            (Where ### is the name of the program that is being wrapped)



[GROUPS]
	This section is used to specify the groups that the metering program is supposed to 
meter the program for.  For example, one can have the group OURGROUP have one 
program available and the group FACULTY have ten copies of the program available.  
This way only one person at a time from the group OURGROUP can run the program at a 
time, while up to ten people from the group FACULTY can be running the program at 
once.  This section must always be at the bottom of the gss file.  The syntax for this section 
is as follows:

OURGROUP                ##      (Where OURGROUP is the name of the group and ### is the number 
of 
				copies that are available to this group to be run)

There can be up to 100 different groups per individual program that is metered.





Software COP Ordering Instructions

	Below is the form that should be filled out and sent along with a check or money 
order to purchase the product.  All currency should be in US dollars and made out to Blaze 
Technologies.  The price for Software COP is as follows:

		$225 for the first file server and then $100 extra for each additional server.

For example.  I have a site that I will be installing Software COP on two file servers.  The 
total cost for this site would be $325 which is $225 for the first machine plus $100 for the 
second server.

After completing the order form below, please mail it along with the payment to:

	Blaze Technologies
	2100 S. 7th St.
	Suite 223
	Rapid City, SD 57701


Software COP Order Form 



		Shipping Address
__________________________
Send to:

Blaze Technologies
2100 S. 7th St.
Suite 223
Rapid City, SD, USA 57701
__________________________
__________________________
__________________________
__________________________

Person to contact in case of questions: __________________________
	Title:  __________________________
	Email:  __________________________
	Voice:  __________________________
	Fax:    __________________________


Software COP single server price                                                $ 225

Number of additional copies required    _____           @ $100 each     $________

In South Dakota, USA  add 4% sales tax                                  $________

Total Due in US dollars                                                 $________

Ordering Date __/__/__

Netware version currently being used:   __ V2.2 __ V3.1x        __V4.0x

What other network utilities would you like to see developed?
______________________________________________
______________________________________________
______________________________________________


Thank you for your support of Software COP!
Software COP by Blaze Technologies V1.1         5


