Analyzing Program Usage Data with the SELECTserver License Manager
Joe
Smetona
Technical Analyst, Server
Based Products Group
Bentley Corporate
Headquarters
Overview
The SELECTserver
License Manager program provides centralized license distribution to individual
engineering workstations for Bentley software products. This is accomplished by creating a service on
the host computer and delegating license information through the default 3998
port. The 3999 port is used for the
Administrative Interface which provides monitoring and control functions
through the default browser interface.
This interface or dashboard can be accessible from any server or
workstation on the network. Normal
workstation to server communication is in the form of a
TCP/IP packet transmissions.
Individual stand alone or node locked licenses can be converted to a
single SELECTserver license by the Bentley
Registration department. Other features
of SELECTserver include License Partitioning,
Portfolio Licensing, License Check Out / Check In and Deployment of Various
Bentley Programs. The SELECTserver licensing system
is a benefit available to Bentley Select Subscribers.
Monitoring Program Activity
The day to day licensing
activity of your workstations is monitored by the program and recorded as
entries in a log file. This log file,
named “license.log”, contains various entries that
relate to particular requests for a product license. This string of information can be easily
imported into a spreadsheet for use in a variety of ways. Through use of a pivot table, custom analysis
and reporting can be accomplished. By
summarizing data in different categories, spreadsheet functions such as
AVERAGE, COUNT, MIN, MAX and SUM can be used to help you review your license
usage.
The following lines
represent the format from a SELECTserver “license.log” file entry:
7, "2002-10-09
1, "2002-10-09
13:56:08","SMITH15946","20300310800010","MicroStation","","07.01","","John.Smith","1000",1034186168
2, "2002-10-09 13:56:13","SMITH15946","20300310800010","MicroStation","","07.01","","John.Smith","1000",1034186173
1, "2002-10-09
13:56:27","SMITH15946","20300310800010","MicroStation","","8.0.7.17","","John.Smith","1001",1034186187
2, "2002-10-09
13:56:32","SMITH15946","20300310800010","MicroStation","","8.0.7.17","","John.Smith","1001",1034186192
8, "2002-10-09
7, "2002-10-09
1, "2002-10-09
14:39:16","SMITH15946","20300310800010","MicroStation","","07.01","","John.Smith","1000",1034188756
1, "2002-10-09
15:33:01","SMITH15946","20300310800010","PowerDraft","","07.01","","John.Smith","1001",1034191981
2, "2002-10-09
15:35:21","SMITH15946","20300310800010","PowerDraft","","07.01","","John.Smith","1001",1034192121
2, "2002-10-09 15:35:36","SMITH15946","20300310800010","MicroStation","","07.01","","John.Smith","1000",1034192136
1, "2002-10-09
16:35:23","SMITH15946","20300310800010","MicroStation","","8.0.7.17","","John.Smith","1002",1034195723
2, "2002-10-09
16:35:26","SMITH15946","20300310800010","MicroStation","","8.0.7.17","","John.Smith","1002",1034195726
The entries are comma
delimited (comma separated values, .csv) which
facilitate their importing directly into a spreadsheet program. The corresponding columns in the spreadsheet
would be defined as follows:
Event Code, Date & Time
of the event, Computer Name Accessing the license, Serial Number, Feature Name,
EC Product Name, Feature version, Platform, User Login Name, Usage ID,
Date/Time in numeric format.
The event code is the first
column and different numeric values represent different SELECTserver
functions. Here are some examples of
commonly used codes:
“0” Usage Denied
“1”
Usage Granted
“2”
Usage Returned
“3”
Usage Checked Out
“4”
Usage Checked In
“5”
Concurrent Usage Granted
“6”
Concurrent Usage Returned
“7”
SELECTserver License Manager Started
“8”
SELECTserver License Manager Shut Down
There are numerous other
values for the entry code, generally, codes 1 thru 8 are
sufficient for tracking most other activity.
Additional values and definitions can be found in the
“ssadminhelp6.html” Administrative Documentation included with the SELECTserver installation.
Tracking computer usage
through the log file is very efficient.
A pulse, or “heartbeat” is the only network
communication between the program and the workstation. This occurs every 2 minutes by default and no
additional traffic is imposed on the network to track the program activity. Also, the other recorded program information
described above can contribute to a comprehensive report used for billing
computer charges to clients as well as providing statistics related to
departmental use of the programs. (Your
spreadsheet may have statistical functions that can provide trending
information on the use of programs and other information.)
Another log file created by
the SELECTserver program may have the entries similar
to the following:
1, "2003-01-13 14:38:49",”C-111”,"20290949800010","MicroStation","","8.0.2.20","","Joe","1000",1042486729
2, "2003-01-13
15:39:08",”C-111”,"20290949800010","MicroStation","","8.0.2.20","","Joe","1000",1042486748
1, "2003-01-14
14:41:49",”C-111”,"20290949800010","MicroStation","","8.0.2.20","","Joe","1001",1042486909
2, "2003-01-14
16:42:13",”C-111”,"20290949800010","MicroStation","","8.0.2.20","","Joe","1001",1042486933
1, "2003-01-15
14:43:18",”C-111”,"20290949800010","MicroStation","","8.0.2.20","","Joe","1002",1042486998
2, "2003-01-15 17:43:35",”C-111”,"20290949800010","MicroStation","","8.0.2.20","","Joe","1002",1042487015
1, "2003-01-16
12:44:43",”C-111”,"20290949800010","MicroStation","","8.0.2.20","","Joe","1003",1042487083
2, "2003-01-16
17:45:40",”C-111”,"20290949800010","MicroStation","","8.0.2.20","","Joe","1003",1042487140
1, "2003-01-17
14:45:55",”C-111”,"20290949800010","MicroStation","","8.0.2.20","","Joe","1004",1042487155
2, "2003-01-17
16:46:04",”C-111”,"20290949800010","MicroStation","","8.0.2.20","","Joe","1004",1042487164
1, "2003-01-20
09:47:34",”C-111”,"20290949800010","MicroStation","","8.0.2.20","","Joe","1005",1042487254
2, "2003-01-20
11:48:05",”C-111”,"20290949800010","MicroStation","","8.0.2.20","","Joe","1005",1042487285
1, "2003-01-21
12:49:41",”C-111”,"20290949800010","MicroStation","","8.0.2.20","","Joe","1006",1042487381
2, "2003-01-21
17:49:52",”C-111”,"20290949800010","MicroStation","","8.0.2.20","","Joe","1006",1042487392
8, "2003-01-22
7, "2003-01-22
This data in the license.log file must be delimited and filtered for
analysis. A very efficient way to
accomplish this is by using the Replace Text tool in a text editor to modify
the formatting by removing characters and unwanted repetitive text
completely. Also, commas can be
substituted for other characters allowing fields to be properly delimited for
import into your Spreadsheet. Here are
some of the Global Replace commands you can use depending on how you would like
to organize your spreadsheet.
1. Change:
(space) to
comma Separates the date and time into different columns.
2. Change: - (dash) to comma Breaks
the date value into separate columns
3. Change : (colon) to comma Breaks
the time value into separate columns
4. Change “ (quote) to no
entry (null) Removes quotes placed
around text fields
5.. Change .
(decimal point) to
comma This will separate the values in the modified login
6. Change ,, (2 commas) to comma This
will remove any null values (Platform, EC) (Double
comma’s result after step 4 is performed)
The resulting text will now
be properly comma delimited for import into your spreadsheet. Additional preparation work (after importing)
involves deleting the unneeded entries (such as the code 7 and 8 lines above),
removing any columns you may not want to track such as version, serial number,
usage ID, etc. and sorting the values by User, Date and Time to insure parity
of the entries . Each session must have
a corresponding code 1 and code 2 line for accurate recording. A code 1 entry is made when the user starts
his program session and a code 2 entry is made when he closes the program and a
license is returned. Usage Granted time,
(code 1) subtracted from Usage Returned time (code 2) will yield the session
time for the corresponding login. The
table below (Fig. 1) was created using the above information and is a small
scale representation of how meaningful information can be obtained from the log
entries..
A sample spreadsheet
generated from the above data is shown below.
Additional Users can be added to represent the activity of a small to
mid-sized engineering company.

Fig. 1
· Sample chart created from formatted license.log
entries.
· This chart is for one user.
Additional users and entries can be added depending on the individual
needs of the company.
· “Decimal Hour” column was added to convert hours and
minutes to a decimal value.
· “Session” refers to the total calculated session time.
· “Total” Column is a sum of the session column to show total
CAD hours.
Encoding Additional Information in the Log File to Track Project, Discipline, Activity and other Data
The only entry in the license.log file string that can be easily changed is the
user login. Windows 2000 provides for
twenty characters for the user login. By
creating multiple user logins, an individual designer or drafter can easily
switch logins to conform to the project and/or type of work to be done.
By creating additional
encoded logins for your CAD users, you can also have precise recording of the
user, project, discipline, activity and other data performed in that
session. This information can easily be extracted from the log file and imported into a
spreadsheet program such as Excel for the creating of reports and charts. Invoices can be generated with different
rates associated with the work performed by the users. For example, there may be categories for
Projects, Design, Drafting, Plotting, Cell Library creation and discipline
breakdowns such as Controls, Electrical, Architectural, Civil, Piping,
Structural, Mechanical, HVAC, etc. The
coding would be incorporated into additional logins for the CAD users according
to a predefined matrix. The CAD users
would only have to log off and back on again using the appropriate login for
the work they would be performing.
Rebooting the computer would not be necessary. An additional advantage is having a dedicated
desktop for specific project related libraries and documents.
The example below
illustrates multiple logins created for separate projects and disciplines. Actual descriptions shown are shown here for
clarity. A more efficient system using
project numbers or codes, each segment of equal length, would be easier to
manage and provide additional characters for tracking other factors.

Fig. 2
Users and Passwords dialog for adding new users in Windows
2000
After adding the additional
User Logins, the log file created by the SELECTserver
program would now have the entries similar to the following:
1, "2003-01-13 14:38:49",”C-111”,"20290949800010","MicroStation","","8.0.2.20","","Joe","1000",1042486729
2, "2003-01-13
15:39:08",”C-111”,"20290949800010","MicroStation","","8.0.2.20","","Joe","1000",1042486748
1, "2003-01-14
14:41:49",”C-111”,"20290949800010","MicroStation","","8.0.2.20","","Joe.Project-1.design","1001",1042486909
2, "2003-01-14
16:42:13",”C-111”,"20290949800010","MicroStation","","8.0.2.20","","Joe.Project-1.design","1001",1042486933
1, "2003-01-15
14:43:18",”C-111”,"20290949800010","MicroStation","","8.0.2.20","","Joe.Project-1.draft","1002",1042486998
2, "2003-01-15
17:43:35",”C-111”,"20290949800010","MicroStation","","8.0.2.20","","Joe.Project-1.draft","1002",1042487015
1, "2003-01-16
12:44:43",”C-111”,"20290949800010","MicroStation","","8.0.2.20","","Joe.Project-2.survey","1003",1042487083
2, "2003-01-16
17:45:40",”C-111”,"20290949800010","MicroStation","","8.0.2.20","","Joe.Project-2.survey","1003",1042487140
1, "2003-01-17
14:45:55",”C-111”,"20290949800010","MicroStation","","8.0.2.20","","Joe.Project-2.survey","1004",1042487155
2, "2003-01-17
16:46:04",”C-111”,"20290949800010","MicroStation","","8.0.2.20","","Joe.Project-2.survey","1004",1042487164
1, "2003-01-20
09:47:34",”C-111”,"20290949800010","MicroStation","","8.0.2.20","","Joe.Project-3.plot","1005",1042487254
2, "2003-01-20
11:48:05",”C-111”,"20290949800010","MicroStation","","8.0.2.20","","Joe.Project-3.plot","1005",1042487285
1, "2003-01-21
12:49:41",”C-111”,"20290949800010","MicroStation","","8.0.2.20","","Joe.Project-7.civil","1006",1042487381
2, "2003-01-21 17:49:52",”C-111”,"20290949800010","MicroStation","","8.0.2.20","","Joe.Project-7.civil","1006",1042487392
8, "2003-01-22 11:54:02",1042487642
7, "2003-01-22 16:54:07",1042487647
You can also take advantage
of Excel’s Pivot Tables for easier manipulation of the data. Actual Pivot table creation is beyond the
scope of this article, the wizards and help available make it an easy process
to use and benefit from their use quite easily.
The primary elements of pivot tables include column, row and page
fields. Fields that are usually
summarized are referred to as data fields.
The primary advantage of pivot tables is that various views of the data
can be achieved by rearranging, displaying and hiding categories. Column headings can be changed to row
positions and vice versa.
A sample spreadsheet is
shown below with an additional table to summarize the data. Additional Users can be added to represent
the activity of a small to mid-sized engineering company.

Fig. 3
· Sample chart created from formatted license.log
entries.
· This chart is for one user.
Additional users and entries can be added depending on the individual
needs of the company.
· “Decimal Hour” column was added to convert hours and
minutes to a decimal value.
· “Session” refers to the total calculated session time.
· “Total” Column is a sum of the session column to show total
CAD hours.
· “Overhead” hours (in red) reflect usage not chargeable to
client.

Fig. 4
Three
Dimensional Bar Graph depicting project and activity hours
In conclusion, reliable
recording of user activity can be accomplished by using the SELECTserver
program that controls the Bentley product licensing. This recording process is extremely reliable,
independent and also very transparent to the User. By formatting the data, detailed reports can
be generated using a spreadsheet application. This information can be used for
monitoring projects, resources, and integrated with other data as
required. If Client billing is involved,
it now takes on a new precision following the actual minute to minute use of
the programs involved.