US5918004A
Expired / Lapsed
US
⏱️ 0.0 years remaining
Remote monitoring of computer programs
Assignee: Cisco Technology Inc
•
Filing: 1996-06-03
•
Granted: 1999-06-29
•
Expires: 2016-06-03
Abstract
Abstract Systems and methods for remotely monitoring the execution of computer programs are provided. Monitoring instructions are added the computer program so that during execution of the program, data may be collected regarding the program execution. The collected data may be automatically sent to a remote system or site for analysis. The monitoring instructions create little or no performance impact on the client yet provide valuable information to the developer of the program. Additionally, the monitoring instructions may be changes during computer program development.
Inventors
- 👤 Mark D. Anderson
- 👤 Evan J. Bigall
- 👤 Christine Clifford
- 👤 Reed Hastings
- 👤 Jon Sorensen
- 👤 Douglas Pan
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-11-04 16:29
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/36; G06F11/362; G06F11/366; G06F11/07; G06F11/0703; G06F11/0706; G06F11/0715; G06F11/30; G06F11/34; G06F11/3466; G06F11/3495; G06F11/22; G06F11/2294; G06F2201/00; G06F2201/865
Claims Analysis
Total Claims: 53
Claim 1
Independent Claim
67 words
In a computer system, a method of remotely monitoring execution of a computer program, comprising the steps of: modifying the computer program to include at least one monitoring instruction for collecting data regarding the execution of the computer program; executing the computer program; the at least one monitoring instruction collecting data regarding the execution of the computer program; and sending the collected data to a remote system.
Claim 2
Dependent Claim
67 words
In a computer system, a method of remotely monitoring execution of a computer program, comprising the steps of: modifying the computer program to include at least one monitoring instruction for collecting data regarding the execution of the computer program; executing the computer program; the at least one monitoring instruction collecting data regarding the execution of the computer program; and sending the collected data to a remote system.
Claim 3
Dependent Claim
25 words
The method of claim 1, further comprising the step of automatically sending the collected data to the remote system when the computer program finishes execution.
Claim 4
Dependent Claim
23 words
The method of claim 1, further comprising the step of changing the at least one monitoring instruction over the computer program development cycle.
Claim 5
Dependent Claim
21 words
The method of claim 1, further comprising the step of classifying the execution of the computer program as normal or abnormal.
Claim 6
Dependent Claim
29 words
The method of claim 4, further comprising the step of saving the call stack in the collected data if the execution of the computer program is classified as abnormal.
Claim 7
Dependent Claim
26 words
The method of claim 1, further comprising the step of allowing a user to customize processing that will be performed when the computer program finishes execution.
Claim 8
Dependent Claim
28 words
The method of claim 1, further comprising the step of generating a symbolic call stack on the remote system so that the computer program may be debugged remotely.
Claim 9
Dependent Claim
35 words
The method of claim 1, wherein the computer program is compiled on the remote system and further comprising the step of storing a module map when the computer program is compiled on the remote system.
Claim 10
Dependent Claim
23 words
The method of claim 8, further comprising the step of storing a call stack and module list when the computer program finishes execution.
Claim 11
Dependent Claim
26 words
The method of claim 9, further comprising the step of generating a module name/relative virtual address (RVA) list from the call stack and the module list.
Claim 12
Dependent Claim
19 words
The method of claim 10, further comprising the step of sending the module name/RVA list to the remote system.
Claim 13
Dependent Claim
37 words
The method of claim 11, further comprising the step of generating a symbolic call stack on the remote system from the module map and the module name/RVA list so that the computer program may be debugged remotely.
Claim 14
Dependent Claim
15 words
The method of claim 1, further comprising the step of remotely debugging the computer program.
Claim 15
Dependent Claim
27 words
The method of claim 1, further comprising the step of sending a version of the computer program to the remote system during execution of the computer program.
Claim 16
Dependent Claim
22 words
The method of claim 14, further comprising the step of downloading a new version of the computer program from the remote system.
Claim 17
Dependent Claim
17 words
The method of claim 1, further comprising the step of sending information to a bug tracking application.
Claim 18
Dependent Claim
28 words
The method of claim 1, further comprising the step of, for each portion of the computer program designed by a different vendor, collecting data specific to each portion.
Claim 19
Dependent Claim
15 words
The method of claim 1, wherein the at least one monitoring instruction specifies a vendor.
Claim 20
Dependent Claim
24 words
The method of claim 1, further comprising the step of adding the at least one monitoring instruction to source code of the computer program.
Claim 21
Dependent Claim
24 words
The method of claim 19, further comprising the step of utilizing a Windows hook to intercept a system call invoked by the computer program.
Claim 22
Dependent Claim
25 words
The method of claim 1, further comprising the step of augmenting object code of the computer program to include the at least one monitoring instruction.
Claim 23
Dependent Claim
16 words
The method of claim 1, wherein the at least one monitoring instructions are computer platform independent.
Claim 24
Dependent Claim
52 words
A distributed computer system, comprising: a server computer; a client computer in communication with the server computer; and a computer program running on the client computer that has been modified to include at least one monitoring instruction that collects and sends data regarding execution of the computer program to the server computer.
Claim 25
Dependent Claim
52 words
A distributed computer system, comprising: a server computer; a client computer in communication with the server computer; and a computer program running on the client computer that has been modified to include at least one monitoring instruction that collects and sends data regarding execution of the computer program to the server computer.
Claim 26
Dependent Claim
20 words
The distributed computer system of claim 23, further comprising a transport medium connecting the client computer and the server computer.
Claim 27
Dependent Claim
16 words
The distributed computer system of claim 24, wherein the transport medium is a network or media.
Claim 28
Dependent Claim
17 words
The distributed computer system of claim 23, further comprising a dynamic-link library (DLL) for intercepting system calls.
Claim 29
Dependent Claim
13 words
The distributed computer system of claim 23, further comprising a bug tracking application.
Claim 30
Dependent Claim
25 words
The distributed computer system of claim 23, further comprising an expansion mechanism for augmenting the computer program to include the at least one monitoring instruction.
Claim 31
Dependent Claim
57 words
A computer program product for remotely monitoring execution of a computer program, comprising: a computer readable storage medium storing the computer program comprising: code that calls at least one monitoring instruction, the at least one monitoring instruction collecting data regarding the execution of the computer program; and code that sends the collected data to a remote system.
Claim 32
Dependent Claim
57 words
A computer program product for remotely monitoring execution of a computer program, comprising: a computer readable storage medium storing the computer program comprising: code that calls at least one monitoring instruction, the at least one monitoring instruction collecting data regarding the execution of the computer program; and code that sends the collected data to a remote system.
Claim 33
Dependent Claim
26 words
The computer program product of claim 29, further comprising code that automatically sends the collected data to the remote system when the computer program finishes execution.
Claim 34
Dependent Claim
22 words
The computer program product of claim 29, further comprising code that classifies the execution of the computer program as normal or abnormal.
Claim 35
Dependent Claim
30 words
The computer program product of claim 29, further comprising code that saves the call stack in the collected data if the execution of the computer program is classified as abnormal.
Claim 36
Dependent Claim
27 words
The computer program product of claim 29, further comprising code that allows a user to customize processing that will be performed when the computer program finishes execution.
Claim 37
Dependent Claim
24 words
The computer program product of claim 29, further comprising code that stores a call stack and module list when the computer program finishes execution.
Claim 38
Dependent Claim
27 words
The computer program product of claim 34, further comprising code that generates a module name/relative virtual address (RVA) list from the call stack and the module list.
Claim 39
Dependent Claim
20 words
The computer program product of claim 35, further comprising code that sends the module name/RVA list to the remote system.
Claim 40
Dependent Claim
22 words
The computer program product of claim 29, further comprising code that downloads a version of the computer program from the remote system.
Claim 41
Dependent Claim
18 words
The computer program product of claim 29, further comprising code that sends information to a bug tracking application.
Claim 42
Dependent Claim
17 words
The computer program product of claim 29, wherein the at least one monitoring instruction specifies a vendor.
Claim 43
Dependent Claim
74 words
In a computer system, a method of remotely monitoring execution of a computer program, comprising: modifying the computer program to include at least one monitoring instruction; executing the computer program; the at least one monitoring instruction saving a call stack and a module list of the computer program; generating a module name/relative virtual address (RVA) list from the call stack and the module list; and sending the module name/RVA list to a remote system.
Claim 44
Dependent Claim
74 words
In a computer system, a method of remotely monitoring execution of a computer program, comprising: modifying the computer program to include at least one monitoring instruction; executing the computer program; the at least one monitoring instruction saving a call stack and a module list of the computer program; generating a module name/relative virtual address (RVA) list from the call stack and the module list; and sending the module name/RVA list to a remote system.
Claim 45
Dependent Claim
32 words
The method of claim 40, further comprising generating a symbolic call stack on the remote system from a module map generated when the computer program was compiled and the module name/RVA list.
Claim 46
Dependent Claim
20 words
The method of claim 41, further comprising debugging the computer program on the remote system utilizing the symbolic call stack.
Claim 47
Dependent Claim
18 words
The method of claim 40, further comprising classifying the execution of the computer program as normal or abnormal.
Claim 48
Dependent Claim
28 words
The method of claim 43, wherein the module name/RVA list is automatically sent to the remote system if the execution of the computer program is classified as abnormal.
Claim 49
Dependent Claim
74 words
A computer program product for remotely monitoring execution of a computer program, comprising: a computer readable storage medium storing the computer program comprising: code that calls at least one monitoring instruction that saves a call stack and a module list of the computer program; code that generates a module name/relative virtual address (RVA) list from the call stack and the module list; and code that sends the module name/RVA list to a remote system.
Claim 50
Dependent Claim
74 words
A computer program product for remotely monitoring execution of a computer program, comprising: a computer readable storage medium storing the computer program comprising: code that calls at least one monitoring instruction that saves a call stack and a module list of the computer program; code that generates a module name/relative virtual address (RVA) list from the call stack and the module list; and code that sends the module name/RVA list to a remote system.
Claim 51
Dependent Claim
25 words
The computer program product of claim 45, wherein the module name/RVA list is automatically sent to the remote system when the computer program finishes execution.
Claim 52
Dependent Claim
22 words
The computer program product of claim 45, further comprising code that classifies the execution of the computer program as normal or abnormal.
Claim 53
Dependent Claim
30 words
The computer program product of claim 47, wherein the module name/RVA list is automatically sent to the remote system if the execution of the computer program is classified as abnormal.
References Cited (Backward Citations)
US4802165A
Cited
US5388211A
Cited
US5511185A
Cited
US5371746A
Cited
US5535329A
Cited
US5442791A
Cited
US5506955A
Cited
US5371883A
Cited
US5561763A
Cited
US5539907A
Cited
US5710724A
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 2002-06-28 | 2002-12-28 | 2003-06-29 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2006-06-28 | 2006-12-28 | 2007-06-29 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2010-06-28 | 2010-12-28 | 2011-06-29 | $7700.00 | Window Closed / Lapsed |