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 SELECTserverlicense.log” file entry:

 

7, "2002-10-09 13:55:33",1034186133

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 14:10:29",1034187029

7, "2002-10-09 14:12:45",1034187165

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 11:54:02",1042487642

7, "2003-01-22 16:54:07",1042487647

 

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.