IP Library Granted Patent US 6,985,891
Granted Patent B2
US 6,985,891 · App. 09/995,739 · Granted Jan 10, 2006

Tracking of computer based training courses

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 6,985,891
App. No.
09/995,739
Granted
Jan 10, 2006
Kind
B2
Abstract

A tracking system ( 1 ) updates data to, and retrieves data from, learning management databases ( 10 ). Update data is received from course player servers ( 4 ), and requests are received from client systems. A common interface ( 21 ) interfaces with all players and clients, and it polls translation modules ( 22 ) for an appropriate and available module when a message is received. A tracking engine ( 20 ) manages threads and a queue for both synchronous and asynchronous communication. The queue is linked with database interfaces ( 24 ), which are Schema Access Objects (SAOs). Each SAO is pooled as a set of instances, activated and managed by a pooling manager.

Claims (33)

1. A tracking system ( 1 ) comprising means for receiving course player update data, and for writing the update data to a learning management database, characterised in that,

the system ( 1 ) comprises database interface means for communication ( 24 ) with a plurality of learning management databases ( 10 ), and

the system comprises a tracking engine ( 20 ) comprising means for managing uni-directional communication for asynchronous course player data updates, and for managing bi-directional communication for synchronous course player data updates and responses.

2. A system as claimed in claim 1 , wherein the system further comprises a plurality of translation modules ( 22 ), each comprising means for translating from a player language to a common engine language, and vice-versa.

3. A system as claimed in claim 2 , wherein each translation module is an object instantiated at start-up.

4. A system as claimed in claim 2 , wherein the system ( 1 ) further comprises a common interface ( 21 ) comprising means for interfacing with all players ( 4 ), and for polling by routing a received message to all translation modules ( 22 ); wherein each translation module ( 22 ) comprises means for parsing received messages and, if it can translate the message, indicating as such; and wherein the common interface ( 21 ) comprises means for activating a translation module ( 22 ) which responds positively.

5. A system as claimed in claim 4 , wherein the common interface ( 21 ) comprises means for polling the translation modules ( 22 ) according to a pre-set file.

6. A system as claimed in claim 5 , wherein the common interface comprises means for receiving translated messages from the translation modules.

7. A system as claimed in claim 1 , wherein the engine ( 20 ) comprises means for managing a queue ( 31 ), and for establishing threads for input and output to the queue.

8. A system as claimed in claim 7 , wherein the engine ( 20 ) comprises means for assuming that a data update message is synchronous unless the message indicates otherwise.

9. A system as claimed in claim 1 , wherein the database interface means ( 24 ) comprises a schema access object (SAO) associated with each learning management database ( 10 ).

10. A system as claimed in claim 9 , wherein all SAOs ( 24 ) have the same exposed interface to the tracking engine ( 20 ).

11. A system as claimed in claim 9 , wherein the system ( 1 ) comprises means for both pre-setting and for subsequently modifying associations between players and SAOs.

12. A system as claimed in any of claim 9 , wherein the system ( 1 ) comprises pooling means, comprising means for creating a number of instances of each SAO and for reusing the instances.

13. A system as claimed in claim 12 , wherein the pooling means comprises a manager comprising means for managing a pool of SAOs, for determining a free SAO if one exists, for putting a requesting thread in a sleep state if an instance is temporarily unavailable, and for instructing a new set of SAO instances to be created.

14. A system as claimed in claim 13 , wherein the system ( 1 ) comprises means for determining during initialisation a connection string to be passed to an SAO instance to indicate the database ( 10 ) to be opened.

15. A system as claimed in claim 13 , wherein the manager comprises means for re-initialising a pooled SAO instance if it operates incorrectly.

16. A system as claimed in claim 6 , wherein the tracking engine ( 20 ) comprises means for maintaining an input thread ( 30 ) between the common interface ( 21 ) and the queue ( 31 ).

17. A system as claimed in any of claim 7 , wherein the tracking engine ( 20 ) comprises means for maintaining a plurality of database-side threads ( 32 ) for routing messages from the queue ( 31 ) to the database interface means ( 24 ).

18. A system as claimed in claim 17 , wherein each database-side thread ( 32 ) comprises means for waiting for a response from the database interface means ( 24 ), and for directly routing received responses to a relevant translation module ( 22 ) for translation and for receiving translated responses back from the translation modules.

19. A system as claimed in claim 18 , wherein each database-side thread ( 32 ) comprises means for directly routing a translated response to an originating player.

20. A system as claimed in claim 17 , wherein the engine ( 20 ) comprises means for maintaining each database-side thread ( 32 ) in an active state or a sleep state.

21. A system as claimed in claim 19 , wherein the engine ( 20 ) comprises means for switching a database-side thread ( 32 ) to an active state in response to the input thread request.

22. A system as claimed in claim 1 , wherein the engine ( 20 ) comprises means for writing the contents of the queue to a log file when shutting down unexpectedly, and for automatically searching for a log file upon start-up.

23. A system as claimed in claim 4 , wherein the common interface ( 21 ) comprises a time-out function comprising means for terminating a player connection upon expiry of a pre-set time period.

24. A system as claimed in claim 1 , wherein the database interface means comprises a time-out function comprising means for terminating a learning management database ( 10 ) connection upon expiry of a pre-set time period.

25. A tracking system ( 1 ) comprising means for receiving course player update data, and for writing the update data to a learning management database, characterised in that,

the system ( 1 ) comprises database interface means for communication ( 24 ) with a plurality of learning management databases ( 10 ),

the system comprises a tracking engine ( 20 ) comprising means for managing unidirectional communication for asynchronous course player data updates, and for managing bi-directional communication for synchronous course player data updates and responses;

wherein the system further comprises a plurality of translation modules ( 22 ), each comprising means for translating from a player language to a common engine language, and vice-versa;

wherein each translation module is an object instantiated at start-up; and

wherein the system ( 1 ) further comprises a common interface ( 21 ) comprising means for interfacing with all players ( 4 ), and for polling by routing a received message to all translation modules ( 22 ); wherein each translation module ( 22 ) comprises means for parsing received messages and, if it can translate the message, indicating as such; and wherein the common interface ( 21 ) comprises means for activating a translation module ( 22 ) which responds positively.

26. A computer program product comprising software code for completing a system as claimed in claim 1 when executing on a digital computer.

Assignments (15)
SECURITY INTEREST Recorded Jul 19, 2021
From: SKILLSOFT LIMITED; SKILLSOFT IRELAND LIMITED
To: CITIBANK, N.A. AS COLLATERAL AGENT
Reel/Frame 056903/0191 →
RELEASE OF FIRST LIEN PATENT SECURITY INTEREST Recorded Sep 9, 2020
From: WILMINGTON SAVINGS FUND SOCIETY, FSB
To: SUMTOTAL SYSTEMS LLC; CYBERSHIFT HOLDINGS, INC.; SKILLSOFT IRELAND LIMITED; SKILLSOFT LIMITED
Reel/Frame 053743/0249 →
RELEASE OF PATENT SECURITY INTEREST RECORDED AT REEL 052972/FRAME 0133 Recorded Sep 9, 2020
From: WILMINGTON SAVINGS FUND SOCIETY, FSB
To: SKILLSOFT IRELAND LIMITED; SKILLSOFT LIMITED
Reel/Frame 053743/0423 →
RELEASE OF SECURITY INTEREST Recorded Aug 31, 2020
From: WILMINGTON BANK SAVINGS FUND SOCIETY, FSB, AS COLLATERAL AGENT
To: SUMTOTAL SYSTEMS LLC; CYBERSHIFT HOLDINGS, INC.; SKILLSOFT IRELAND LTD.; SKILLSOFT LIMITED
Reel/Frame 053638/0600 →
NOTICE OF AGENCY RESIGNATION AND ASSIGNMENT OF PATENT SECURITY AGREEMENT Recorded Jul 17, 2020
From: BARCLAYS BANK PLC, AS RESIGNING COLLATERAL AGENT
To: WILMINGTON SAVINGS FUND SOCIETY, FSB, AS SUCCESSOR COLLATERAL AGENT
Reel/Frame 053236/0554 →
NOTICE OF AGENCY RESIGNATION AND ASSIGNMENT OF PATENT SECURITY AGREEMENT Recorded Jul 17, 2020
From: BARCLAYS BANK PLC, AS RESIGNING COLLATERAL AGENT
To: WILMINGTON SAVINGS FUND SOCIETY, FSB, AS SUCCESSOR COLLATERAL AGENT
Reel/Frame 053236/0505 →
DEBTOR-IN-POSSESSION GRANT OF SECURITY INTEREST IN PATENT RIGHTS Recorded Jun 17, 2020
From: SKILLSOFT IRELAND LIMITED; SKILLSOFT LIMITED
To: WILMINGTON SAVINGS FUND SOCIETY, FSB
Reel/Frame 052972/0133 →
SECOND LIEN SECURITY AGREEMENT Recorded May 1, 2014
From: SKILLSOFT IRELAND LTD; SKILLSOFT LIMITED
To: BARCLAYS BANK PLC, AS ADMINISTRATIVE AGENT AND COLLATERAL AGENT
Reel/Frame 032800/0213 →
FIRST LIEN SECURITY AGREEMENT Recorded Apr 30, 2014
From: SKILLSOFT IRELAND LTD; SKILLSOFT LIMITED
To: BARCLAYS BANK PLC, AS ADMINISTRATIVE AGENT AND COLLATERAL AGENT
Reel/Frame 032792/0820 →
RELEASE OF SECURITY INTEREST Recorded Apr 28, 2014
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: SKILLSOFT IRELAND LIMITED; CBT (TECHNOLOGY) LIMITED; SKILLSOFT LIMITED
Reel/Frame 032775/0093 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 13, 2011
From: CBT (TECHNOLOGY) LIMITED
To: SKILLSOFT IRELAND LIMITED
Reel/Frame 026581/0980 →
PATENT SECURITY AGREEMENT Recorded Oct 15, 2010
From: CBT (TECHNOLOGY) LIMITED
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 025137/0936 →
RELEASE OF SECURITY INTEREST Recorded May 24, 2010
From: CREDIT SUISSE, CAYMAN ISLANDS BRANCH
To: CBT (TECHNOLOGY) LIMITED
Reel/Frame 024424/0769 →
SECURITY AGREEMENT Recorded May 22, 2007
From: CBT (TECHNOLOGY) LIMITED
To: CREDIT SUISSE, CAYMAN ISLANDS BRANCH
Reel/Frame 019323/0817 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 29, 2001
From: REDMOND, ANTHONY; MANGAN, MARTIN
To: CBT (TECHNOLOGY) LIMITED
Reel/Frame 012345/0372 →