IP Library Granted Patent US 9,032,372
Granted Patent B2
US 9,032,372 · App. 13/591,760 · Granted May 12, 2015

Runtime environment and method for non-invasive monitoring of software applications

Inventors: Michael Münster (Dreieich, DE); Oguzhan Özkut (Darmstadt, DE)
Assignee: Software AG
G06F11/3612
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 9,032,372
App. No.
13/591,760
Granted
May 12, 2015
Kind
B2
Abstract

Certain example embodiments of the present invention relate to a runtime environment for non-invasive monitoring of software applications. The runtime environment ( 10 ) is configured to: (a) during execution of at least one software application ( 20 ) within the runtime environment ( 10 ), identify a function call ( 25 ) to be executed by the at least one software application ( 20 ); and (b) generating monitoring data relating to the identified function call ( 25 ).

Claims (42)

1. A computer system comprising:

at least one hardware processor and a memory, the at least one hardware processor configured to:

provide a runtime environment for non-invasive monitoring of software applications;

execute at least one software application within the provided runtime environment, the at least one software application including program instructions to be interpreted by the provided runtime environment being executed by the at least one hardware processor;

during execution of the at least one software application within the runtime environment, automatically identify, via the provided runtime environment, a function call program instruction that is part of the at least one software application and that is to be executed within the provided runtime environment;

in response to identification that the function call program instruction is to be executed within the provided runtime environment, create a copy of function call data associated with the function call program instruction, wherein the copy is created by the provided runtime environment without an explicit program instruction being included in the at least one software application;

process the function call program instruction within the provided runtime environment by at least modifying a corresponding instruction pointer or program counter in accordance with the function call program instruction; and

generate monitoring data relating to the automatically identified function call program instruction, the monitoring data including the created copy of the function call data.

2. The computer system of claim 1 , wherein the generated monitoring data includes at least one of: an identifier of an entity calling the at least one function call program instruction, a memory address of the entity calling the at least one function call program instruction, a timestamp, and/or an identifier of the function call program instruction.

3. The computer system of claim 1 , wherein the function call data includes at least one function parameter.

4. The computer system of claim 3 , wherein, as part of executing the function call program instruction, the copy is created before the instruction pointer or program counter is modified.

5. The computer system of claim 4 , wherein, in response returning from a function associated with the function call program instruction, create a second copy of the at least one function call parameter.

6. The computer system of claim 1 , wherein the at least one processor is further configured to:

send the generated monitoring data to an analytic engine for monitoring the at least one software application.

7. The computer system of claim 1 , wherein the monitoring data is generated only if at least one predefined filter property that is monitored by the provided runtime environment is satisfied;

wherein the at least one predefined filter property includes at least one of: an identifier of a function call associated with the function call program instruction, whether a specific function parameter is present in the function call, and/or whether a specific function parameter has a predefined value.

8. The computer system of claim 1 , wherein the copy is created by copying the function call data from the memory that is addressable by the at least one processor.

9. The system of claim 1 , wherein the at least one processor is further configured to automatically determine whether a function parameter associated with the function call program instruction was changed and/or added as a result of the function being executed within the runtime environment.

10. A method for non-invasive monitoring of software applications operating in a computer system including at least one processor and a memory cooperating to provide a runtime environment for non-invasive monitoring of software applications on the computer system, the method comprises comprising, in connection with the runtime environment:

executing, by using the computer system, at least one software application within the provided runtime environment, the at least one software application including program instructions to be interpreted by the provided runtime environment being executed by the at least one processor;

during execution of the at least one software application within the runtime environment, automatically identifying, via the provided runtime environment, a selected program instruction that is part of the at least one software application and that is to be executed within the provided runtime environment;

in response to identification that the selected program instruction is to be executed within the provided runtime environment, creating a copy of data associated with how the selected program instruction is to be executed, wherein the copy is created by the provided runtime environment without an explicit copy program instruction being included in the at least one software application;

processing the selected program instruction within the provided runtime environment; and

generating monitoring data relating to the automatically identified program instruction, the monitoring data including the created copy,

wherein the selected program instruction is a function call program instruction that calls a function that is part of the at least one software application, and

wherein processing the function call program instruction includes modifying a corresponding instruction pointer or program counter in accordance with the function call program instruction.

11. The method of claim 10 , wherein the monitoring data includes at least one of: an identifier of the entity calling the at least one function call, an address of the entity calling the at least one function call, a timestamp, and/or an identifier of the function call.

12. The method of claim 10 , wherein the copy of data associated with how the selected program instruction is to be executed includes a copy of the at least one function parameter associated with the function call program instruction.

13. The method of claim 10 , wherein, as part of executing the function call program instruction, the copy is created before the instruction pointer or program counter is modified.

14. The method of claim 13 , further comprising:

generating a second copy after the function call has been executed.

15. The method of claim 10 , wherein the monitoring data is generated only if at least one predefined filter property is satisfied,

wherein the at least one predefined filter property includes at least one of: an identifier of a function call associated with the function call program instruction, whether a specific function parameter is present in the function call, and/or whether a specific function parameter has a predefined value.

16. A non-transitory computer readable storage medium storing a computer program for use with a computer system that includes at least one processor coupled to a memory, the computer program comprising instructions that cause the computer system to:

provide a runtime environment, on the computer system, for at least monitoring software applications that are being executed on the computer system;

execute at least one software application within the provided runtime environment, the at least one software application including program instructions to be interpreted by the provided runtime environment being executed by the at least one processor;

during execution of the at least one software application within the runtime environment, automatically identify, via the provided runtime environment, a program instruction that is part of the at least one software application and that is to be executed within the provided runtime environment;

in response to identification that the program instruction is to be executed within the provided runtime environment, create a copy of data associated with how the program instruction is to be executed, wherein the copy is created by the provided runtime environment without an explicit copy program instruction being included in the at least one software application;

process the program instruction within the provided runtime environment; and

generate monitoring data relating to the automatically identified program instruction, the monitoring data including the created copy,

wherein the program instruction is a function call program instruction that calls a function that is part of the at least one software application, and

wherein processing the function call program instruction includes modification of a corresponding instruction pointer or program counter in accordance with the function call program instruction.

Assignments (3)
CHANGE OF NAME Recorded Dec 17, 2024
From: MOSEL BIDCO AG
To: SOFTWARE GMBH
Reel/Frame 069715/0415 →
MERGER Recorded Dec 17, 2024
From: SOFTWARE AG
To: MOSEL BIDCO AG
Reel/Frame 070095/0634 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 22, 2012
From: MUNSTER, MICHAEL; OZKUT, OGUZHAN
To: SOFTWARE AG
Reel/Frame 028829/0957 →
Priority Claims (1)
EP 11187125 · Oct 28, 2011 · regional
Continuity (1)
Related Publication 20130111450A1 · May 2, 2013