# US 9,437,024 B2 · Transformation function insertion for dynamically displayed tracer data

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 9,437,024 B2
- Document ID: US9437024B2
- Status: Granted
- Kind: B2
- Application number: 14/995,872
- Filed: 2016-01-14
- Published: 2016-05-12
- Granted: 2016-09-06
- Earliest claimed: 2013-02-01
- Assignees: Microsoft Technology Licensing, LLC
- Applicants: Microsoft Technology Licensing, LLC
- Inventors: Russell S. Krajec; Alexander G. Gounares
- Web page: https://patentgrep.com/patent/US9437024B2

## CPC

- G06T 11/26: Drawing of charts or graphs
- G06F 11/302: {where the computing system component is a software system}
- G06F 11/323: {Visualisation of programs or trace data}
- G06F 11/3466: {Performance evaluation by tracing or monitoring}
- G06F 2201/815: Virtual
- G06F 2201/865: Monitoring of software
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A visualization system for a tracer may include a processing pipeline that may generate tracing data, preprocess the data, and visualize the data. The preprocessing step may include a mechanism to process user-defined expressions or other executable code. The executable code may perform various functions including mathematical, statistical, aggregation with other data, and others. The preprocessor may perform malware analysis, test the functionality, then implement the executable code. A user may be presented with an editor or other text based user interface component to enter and edit the executable code. The executable code may be saved and later recalled as a selectable transformation for use with other data streams.

## Claims

### Claim 1

A hardware storage media comprising computer-executable instructions which, when executed on one or more processors, cause the one or more processors to perform a computer-implemented method for using a force directed graph to visualize how messages are passed between computational components, and for using the force directed graph as an input to control a tracer in order to permit trace data to be prepared for display by applying predefined or user-defined transformations to elements of the force directed graph, the computer-implemented method comprising:
executing an application and gathering message passing data derived from messages passed between compute elements, the message passing data comprising periodic updates transmitted at a predefined interval;
collecting and storing the message passing data;
analyzing at least some of the stored message passing data and preparing from the analyzed message passing data a force directed graph comprised of nodes which represent the compute elements, and edges between at least some of the nodes, with the edges representing the periodic updates for the messages as the messages are passed between the nodes at the predefined interval as the application is executed;
displaying said force directed graph data to visualize how the periodic updates for the messages occur as the messages are passed between the compute elements at the predefined interval during execution of the application;
inputting one or more transformation definitions for one or more elements of the force directed graph during one or more of the periodic updates visualized for the force directed graph, at least some of said transformation definitions comprising executable code that performs operations on said one or more elements of the force directed graph; and
displaying said force directed graph as modified by executing said transformation definitions.

### Claim 2 (depends on 1)

The computer storage media of claim 1 wherein the computer-implemented method further comprises performing a malware analysis of the executable code for said transformation definitions before executing the executable code for the transformation definitions.

### Claim 3 (depends on 1)

The computer storage media of claim 1, wherein inputting one or more transformation definitions is performed at an interface which comprises a set of execution settings.

### Claim 4 (depends on 3)

The computer storage media of claim 3 wherein the computer-implemented method further comprises storing said one or more transformation definitions.

### Claim 5 (depends on 4)

The computer storage media of claim 4, wherein said interface further comprises a retrieval mechanism to select said stored one or more transformation definitions from a stored set of transformation definitions.

### Claim 6 (depends on 1)

The computer storage media of claim 1, wherein displaying said force directed graph comprises animating the force directed graph to show the periodic updates at the predefined interval as the force directed graph is visualized.

### Claim 7 (depends on 2)

The computer storage media of claim 2, wherein said malware analysis comprises checking said executable code against a whitelist.

### Claim 8 (depends on 2)

The computer storage media of claim 2, wherein said malware analysis comprises checking said executable code against a blacklist.

### Claim 9

A computing system comprising hardware storage media containing computer-executable instructions which, when executed on one or more processors, cause the one or more processors to configure the computing system with a system architecture that performs a computer-implemented method for using a force directed graph to visualize how messages are passed between computational components, and for using the force directed graph as an input to control a tracer in order to permit trace data to be prepared for display by applying predefined or user-defined transformations to elements of the force directed graph, the system architecture comprising:
a compute environment that executes an application and gathers with a tracer message passing data derived from messages passed between compute elements of the compute environment, the message passing data comprising periodic updates transmitted at a predefined interval;
a collector which collects the message passing data and stores the collected message passing data in a database;
an analyzer that executes a visualizer, and wherein the visualizer performs the following:
analyzes at least some of the stored message passing data and prepares from the analyzed message passing data a force directed graph comprised of nodes which represent the compute elements of the compute environment, and edges between at least some of the nodes, with the edges representing the periodic updates for the messages as the messages are passed between the nodes at the predefined interval as the application is executed, the directed graph being prepared for presentation at the display to visualize how the periodic updates for the messages occur as the messages are passed between the compute elements at the predefined interval during execution of the application; and
an interface comprising an input for inputting one or more transformation definitions for one or more elements of the force directed graph during one or more of the periodic updates visualized for the force directed graph, at least some of said transformation definitions comprising executable code that performs operations on said one or more elements of the force directed graph.

### Claim 10 (depends on 9)

The computing system of claim 9, wherein the computer architecture performs a malware analysis of the executable code for said transformation definitions before executing the executable code for the transformation definitions.

### Claim 11 (depends on 9)

The computing system of claim 9, wherein inputting one or more transformation definitions is performed at an interface which comprises a set of execution settings.

### Claim 12 (depends on 11)

The computing system of claim 11 wherein said one or more transformation definitions are stored in a database.

### Claim 13 (depends on 12)

The computing system of claim 12, wherein said interface further comprises a retrieval mechanism to select said stored one or more transformation definitions from a stored set of transformation definitions.

### Claim 14 (depends on 9)

The computing system of claim 9, wherein displaying said force directed graph comprises animating the force directed graph to show the periodic updates at the predefined interval as the force directed graph is visualized.

### Claim 15 (depends on 9)

The computing system of claim 9, wherein said interface comprises an editor that edits said executable code for said at least some transformation definitions.

### Claim 16

A computing system for using a force directed graph to visualize how messages are passed between computational components, and for using the force directed graph as an input to control a tracer in order to permit trace data to be prepared for display by applying predefined or user-defined transformations to elements of the force directed graph, the computing system comprising:
a memory containing computer executable instructions for a computer-implemented method;
one or more processors which, when executing the executable instructions for the computer implemented method, cause the computing system to perform the following:
execute an application and gather message passing data derived from messages passed between compute elements, the message passing data comprising periodic updates transmitted at a predefined interval;
collect and store the message passing data;
analyze at least some of the stored message passing data and prepare from the analyzed message passing data a force directed graph comprised of nodes which represent the compute elements, and edges between at least some of the nodes, with the edges representing the periodic updates for the messages as the messages are passed between the nodes at the predefined interval as the application is executed;
display said force directed graph data to visualize how the periodic updates for the messages occur as the messages are passed between the compute elements at the predefined interval during execution of the application;
receive as input one or more transformation definitions for one or more elements of the force directed graph during one or more of the periodic updates visualized for the force directed graph, at least some of said transformation definitions comprising executable code that performs operations on said one or more elements of the force directed graph; and
display said force directed graph as modified by executing said transformation definitions.

### Claim 17 (depends on 16)

The computing system of claim 16, wherein the computer-executable instruction for the computer-implemented method cause the computing system to further perform the following: perform a malware analysis of the executable code for said transformation definitions before executing the executable code for the transformation definitions.

### Claim 18 (depends on 16)

The computing system of claim 16, wherein the one or more transformation definitions are received as input at an interface which comprises a set of execution settings.

### Claim 19 (depends on 18)

The computing system of claim 18, wherein the computer-executable instructions for the computer-implemented method cause the computing system to further perform the following: store said one or more transformation definitions.

### Claim 20 (depends on 16)

The computing system of claim 16, wherein the computer-executable instructions for the computer-implemented method cause the computing system to further perform the following: animate the force directed graph to show the periodic updates at the predefined interval as the force directed graph is visualized.
