1 09/14/04, document: p000xxx, rev - tm non-intrusive real-time instrumentation for distributed...

31
1 09/14/04, Document: P000XXX, Rev - TM Non-Intrusive Real-Time Instrumentation for Non-Intrusive Real-Time Instrumentation for Distributed Systems and Enterprise Applications Distributed Systems and Enterprise Applications Prepared for: Prepared for: Borland Conference Borland Conference Presented by: Presented by: Jorly Metzger Jorly Metzger , 703.368.6107x235, [email protected] , 703.368.6107x235, [email protected] Product Manager: Product Manager: Gary Sikora Gary Sikora , 703.795.4684, [email protected] , 703.795.4684, [email protected] Sales Manager: Sales Manager: Stewart Bittel Stewart Bittel , 703.772.3512, [email protected] , 703.772.3512, [email protected] 14 September 2004 14 September 2004 Document: P000XXX, Rev - Document: P000XXX, Rev - TM

Upload: felix-dylan-oneal

Post on 13-Jan-2016

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 09/14/04, Document: P000XXX, Rev - TM Non-Intrusive Real-Time Instrumentation for Distributed Systems and Enterprise Applications Prepared for: Borland

109/14/04, Document: P000XXX, Rev -

TM

Non-Intrusive Real-Time Instrumentation forNon-Intrusive Real-Time Instrumentation forDistributed Systems and Enterprise ApplicationsDistributed Systems and Enterprise Applications

Prepared for:Prepared for:Borland ConferenceBorland Conference

Presented by:Presented by:Jorly MetzgerJorly Metzger, 703.368.6107x235, [email protected], 703.368.6107x235, [email protected]

Product Manager:Product Manager:Gary SikoraGary Sikora, 703.795.4684, [email protected], 703.795.4684, [email protected]

Sales Manager:Sales Manager:Stewart BittelStewart Bittel, 703.772.3512, [email protected], 703.772.3512, [email protected]

14 September 200414 September 2004

Document: P000XXX, Rev -Document: P000XXX, Rev -

TM

Page 2: 1 09/14/04, Document: P000XXX, Rev - TM Non-Intrusive Real-Time Instrumentation for Distributed Systems and Enterprise Applications Prepared for: Borland

209/14/04, Document: P000XXX, Rev -

TM

AgendaAgenda

Background

What is CodeEyes

How CodeEyes Works

How Variables are Selected

The Visualizations Views

The Data Buffer

CodeEyes Benefits

Customers

Questions

Page 3: 1 09/14/04, Document: P000XXX, Rev - TM Non-Intrusive Real-Time Instrumentation for Distributed Systems and Enterprise Applications Prepared for: Borland

309/14/04, Document: P000XXX, Rev -

TM

Non-Intrusive Real-Time Instrumentation forNon-Intrusive Real-Time Instrumentation forDistributed Systems and Enterprise ApplicationsDistributed Systems and Enterprise Applications

BackgroundBackground

Page 4: 1 09/14/04, Document: P000XXX, Rev - TM Non-Intrusive Real-Time Instrumentation for Distributed Systems and Enterprise Applications Prepared for: Borland

409/14/04, Document: P000XXX, Rev -

TM

Background –Instrumentation ApproachBackground –Instrumentation Approach Typical approach

Application code modification Execution environment interruption

CodeEyes approach Accessing memory via the Operating System (OS) independent of

the application

Memory Space

Execution Environment

Console OutputsInstrumentationInterfaces

Application Code

BreakpointsSingle Step

OS Access

Intrusive

Non-Intrusive

Page 5: 1 09/14/04, Document: P000XXX, Rev - TM Non-Intrusive Real-Time Instrumentation for Distributed Systems and Enterprise Applications Prepared for: Borland

509/14/04, Document: P000XXX, Rev -

TM

Background – Application Code ApproachBackground – Application Code Approach Methods

System outputs to the console window Embedding instrumentation code Special interfaces

Result Special code affects the execution and requires a recompile between

iterations Consequently increasing development costs

Coded System OutputsDisplayed System Outputs

Page 6: 1 09/14/04, Document: P000XXX, Rev - TM Non-Intrusive Real-Time Instrumentation for Distributed Systems and Enterprise Applications Prepared for: Borland

609/14/04, Document: P000XXX, Rev -

TM

Background – Execution Environment ApproachBackground – Execution Environment Approach Methods

Breakpoint to view variables Single-step and jump through code Integrated Development Environment provided

Result Extremely powerful in simple, single-threaded, isolated applications Unusable when coupled threads and applications continue execution

while a selected one was halted

Breakpoint

VariableWatch

Page 7: 1 09/14/04, Document: P000XXX, Rev - TM Non-Intrusive Real-Time Instrumentation for Distributed Systems and Enterprise Applications Prepared for: Borland

709/14/04, Document: P000XXX, Rev -

TM

Background – Memory Space ApproachBackground – Memory Space Approach Methods

Accessing memory via the OS independent of the application Buffer data for post analysis Monitor and control data real-time

Result Does not effect the application code or execution environment Powerful for coupled threaded and multi process system and

enterprise applications

NativeSymbol

File

SpecialSymbol

File

or

SpecialCompiler

ProjectCompiler

ProjectSourceCode Memory

Buffer

Command Line

Graphical

Page 8: 1 09/14/04, Document: P000XXX, Rev - TM Non-Intrusive Real-Time Instrumentation for Distributed Systems and Enterprise Applications Prepared for: Borland

809/14/04, Document: P000XXX, Rev -

TM

Non-Intrusive Real-Time Instrumentation forNon-Intrusive Real-Time Instrumentation forDistributed Systems and Enterprise ApplicationsDistributed Systems and Enterprise Applications

What is CodeEyesWhat is CodeEyes

Page 9: 1 09/14/04, Document: P000XXX, Rev - TM Non-Intrusive Real-Time Instrumentation for Distributed Systems and Enterprise Applications Prepared for: Borland

909/14/04, Document: P000XXX, Rev -

TM

What is CodeEyes – OverviewWhat is CodeEyes – Overview

Enabled for the first time are synchronous views of application data distributed across .Net, Java, Web Services, CORBA and legacy architectures

Non-intrusive approach – The application’s code or execution environment are not modified or interrupted when instrumentation data is accessed

An open architecture software instrumentation framework built for complex, distributed, heterogeneous, real-time applications found in today’s systems and enterprises

Page 10: 1 09/14/04, Document: P000XXX, Rev - TM Non-Intrusive Real-Time Instrumentation for Distributed Systems and Enterprise Applications Prepared for: Borland

1009/14/04, Document: P000XXX, Rev -

TM

What is CodeEyes – UsageWhat is CodeEyes – Usage Development

Real-time, synchronized access to software variables across disparate, distributed applications decreases development time and increases product quality

Testing Complex measurement and recording of product performance and

functionality provides increased test repeatability and thoroughness, and streamlines the certification process

Deployment Non-intrusive monitoring of system or enterprise applications

provides invaluable insight that helps avoid failures while the product is in production

Support many phases of product life-cycle – not just development

Page 11: 1 09/14/04, Document: P000XXX, Rev - TM Non-Intrusive Real-Time Instrumentation for Distributed Systems and Enterprise Applications Prepared for: Borland

1109/14/04, Document: P000XXX, Rev -

TM

Non-Intrusive Real-Time Instrumentation forNon-Intrusive Real-Time Instrumentation forDistributed Systems and Enterprise ApplicationsDistributed Systems and Enterprise Applications

How CodeEyes WorksHow CodeEyes Works

Page 12: 1 09/14/04, Document: P000XXX, Rev - TM Non-Intrusive Real-Time Instrumentation for Distributed Systems and Enterprise Applications Prepared for: Borland

1209/14/04, Document: P000XXX, Rev -

TM

How CodeEyes Works – Symbol FilesHow CodeEyes Works – Symbol Files Natively produced symbol files are used to map

application variables to memory locations Symbol files produced by compilers No special compilation is required

Instrumentation synchronization Variables originating from different applications with different native

symbol file formats can coexist on the same graph

The current symbol file formatsSymbol File Format Compiler

ELF/DWARF-2 Green Hills Compiler Wind River Tornado Analog Devices Inc. Tools Code Warrior IAR Embedded Workbench for Renesas R8C RealView GNU Compiler Collection PE/COFF (PBD) Microsoft Visual Basic, C++, C# and J# PE/OMF (TDS) Borland Pascal, Delphi, C++ and C#

Page 13: 1 09/14/04, Document: P000XXX, Rev - TM Non-Intrusive Real-Time Instrumentation for Distributed Systems and Enterprise Applications Prepared for: Borland

1309/14/04, Document: P000XXX, Rev -

TM

How CodeEyes Works – Synchronized ExampleHow CodeEyes Works – Synchronized Example The first application is written in

Visual Basic and runs in a .Net framework

The other is written in C++ and runs in an embedded system

The associated symbol for each, PE/COFF and Elf/DWARF 2 are used

Channels are setup to the variable via agents running on the host

Both variables, A and B, are synchronized in the presentation layer views

.NET

CORBA

MOM

EnterpriseNetwork

TP

COM+

ORB

System

PE/COFFELF/

DWARF 2

VB C++

Var A Var B

Synchronized Instrumentation

Page 14: 1 09/14/04, Document: P000XXX, Rev - TM Non-Intrusive Real-Time Instrumentation for Distributed Systems and Enterprise Applications Prepared for: Borland

1409/14/04, Document: P000XXX, Rev -

TM

How CodeEyes Works – ArchitectureHow CodeEyes Works – Architecture The architecture is comprised of four components; three that make up

the Model View Controller (MVC) and a fourth Agent component which is responsible for accessing memory locations

Agent interface implements a Common API which allows new Agents to be developed, extending the instrumentation capability without affecting the core MVC components New Agents can be developed for additional OS’s, embedded systems,

even for non-memory sources, such as databases and hardware

Model

View

Controller

NetworkNode Node

Agent App A Agent App BOS OS

MemoryMemory

- CodeEyes Components

Page 15: 1 09/14/04, Document: P000XXX, Rev - TM Non-Intrusive Real-Time Instrumentation for Distributed Systems and Enterprise Applications Prepared for: Borland

1509/14/04, Document: P000XXX, Rev -

TM

How CodeEyes Works – ArchitectureHow CodeEyes Works – Architecture The architecture is comprised of four components; three that make up

the Model View Controller (MVC) and a fourth Agent component which is responsible for accessing memory locations

Agent interface implements a Common API which allows new Agents to be developed, extending the instrumentation capability without affecting the core MVC components New Agents can be developed for additional OS’s, embedded systems,

even for non-memory sources, such as databases and hardware

Model

View

Controller

NetworkNode Node

Agent App A Agent App BOS OS

MemoryMemory

- CodeEyes Components

Page 16: 1 09/14/04, Document: P000XXX, Rev - TM Non-Intrusive Real-Time Instrumentation for Distributed Systems and Enterprise Applications Prepared for: Borland

1609/14/04, Document: P000XXX, Rev -

TM

Non-Intrusive Real-Time Instrumentation forNon-Intrusive Real-Time Instrumentation forDistributed Systems and Enterprise ApplicationsDistributed Systems and Enterprise Applications

How Variables are SelectedHow Variables are Selected

Page 17: 1 09/14/04, Document: P000XXX, Rev - TM Non-Intrusive Real-Time Instrumentation for Distributed Systems and Enterprise Applications Prepared for: Borland

1709/14/04, Document: P000XXX, Rev -

TM

How Variables are Selected – Watch ProfilerHow Variables are Selected – Watch Profiler Select variables across applications and nodes to control and monitor

Drill-down across classes and methods

Watch profiles are displayed in tabbed panes in a tree and tabular hybrid structure

Page 18: 1 09/14/04, Document: P000XXX, Rev - TM Non-Intrusive Real-Time Instrumentation for Distributed Systems and Enterprise Applications Prepared for: Borland

1809/14/04, Document: P000XXX, Rev -

TM

How Variables are Selected – Watch Profiler (cont.)How Variables are Selected – Watch Profiler (cont.) Menu selected applications and hosting node agents

Watch profiles can be saved and opened to enable testing repeatability and support formal software certification and maintenance activities

A hybrid tree and tabular variable representation intuitively displays complex aggregate data structures and their associated values and attributes

Values can be displayed in various engineering units to ease measurement relationship to other artifacts of a software application’s life-cycle

Variables can be modified in real-time, providing the ability to apply “what-if” scenarios to see how the change affects the rest of the system or enterprise

Page 19: 1 09/14/04, Document: P000XXX, Rev - TM Non-Intrusive Real-Time Instrumentation for Distributed Systems and Enterprise Applications Prepared for: Borland

1909/14/04, Document: P000XXX, Rev -

TM

Non-Intrusive Real-Time Instrumentation forNon-Intrusive Real-Time Instrumentation forDistributed Systems and Enterprise ApplicationsDistributed Systems and Enterprise Applications

The Visualization ViewsThe Visualization Views

Page 20: 1 09/14/04, Document: P000XXX, Rev - TM Non-Intrusive Real-Time Instrumentation for Distributed Systems and Enterprise Applications Prepared for: Borland

2009/14/04, Document: P000XXX, Rev -

TM

The Visualization Views – TypesThe Visualization Views – Types There are three visualization views

Strip Chart: Temporal graph of variables Spectral: Spectral analysis of variables Statistical: Statistical analysis of variables

The open architecture is extensible so new views can be added

.NET

MOM

EnterpriseNetwork

COM+

TP

System

Watch Profiler

Visualization Views

System/Enterprise

J2EE EnterpriseNetwork

MOM TP

EJB

Page 21: 1 09/14/04, Document: P000XXX, Rev - TM Non-Intrusive Real-Time Instrumentation for Distributed Systems and Enterprise Applications Prepared for: Borland

2109/14/04, Document: P000XXX, Rev -

TM

The Visualization Views – Common FeaturesThe Visualization Views – Common Features Simultaneously graph multiple variables with each plot

differentiated by color

Multiple graph instances are used to organize related data and provide swift navigation between groupings

Scroll bar controls provide stepped zoom in/out control with skew offset control, a magnitude optimization control based on variable values, and a temporal slide view window

Run controls are provided to reset, start, pause and resume the graph

Page 22: 1 09/14/04, Document: P000XXX, Rev - TM Non-Intrusive Real-Time Instrumentation for Distributed Systems and Enterprise Applications Prepared for: Borland

2209/14/04, Document: P000XXX, Rev -

TM

The Visualization Views – Strip ChartThe Visualization Views – Strip Chart Cursors provide the capability to

measure variable magnitude and temporal values and delta values between two points

Scroll bars provide a capability to track new data or review past data while the graph is running

Graphed variables temporal values can be exported to the data buffer for post analysis

Page 23: 1 09/14/04, Document: P000XXX, Rev - TM Non-Intrusive Real-Time Instrumentation for Distributed Systems and Enterprise Applications Prepared for: Borland

2309/14/04, Document: P000XXX, Rev -

TM

The Visualization Views – SpectralThe Visualization Views – Spectral

Averaging and persistence controls for a trace history view

Magnitude axis can be set to absolute or relative with logarithmic or inverse scale

Sampling window can be set to a free running sliding window or sequenced with percent overlap

Cursors provide the capability to measure spectral magnitude and frequency values, and delta values between two points

Scroll bars provide a capability to optimize the frequency axis based on cursor position or maximum magnitude

FFT window function and number of points can be applied in real-time

Page 24: 1 09/14/04, Document: P000XXX, Rev - TM Non-Intrusive Real-Time Instrumentation for Distributed Systems and Enterprise Applications Prepared for: Borland

2409/14/04, Document: P000XXX, Rev -

TM

The Visualization Views – StatisticalThe Visualization Views – Statistical

Bias error, mean, standard deviation and RMS error are continuously calculated and displayed

Every measurement can selected to be displayed in the waveform

A signal distribution thumbnail graph provides a quick view

Signal mean and standard deviation are continuously calculated and displayed

Truth can be a static value or a reference to a real-time variable

Page 25: 1 09/14/04, Document: P000XXX, Rev - TM Non-Intrusive Real-Time Instrumentation for Distributed Systems and Enterprise Applications Prepared for: Borland

2509/14/04, Document: P000XXX, Rev -

TM

The Visualization Views – StatisticalThe Visualization Views – Statistical

Bias error, mean, standard deviation and RMS error are continuously calculated and displayed

Every measurement can selected to be displayed in the waveform

A signal distribution thumbnail graph provides a quick view

Signal mean and standard deviation are continuously calculated and displayed

Truth can be a static value or a reference to a real-time variable

Page 26: 1 09/14/04, Document: P000XXX, Rev - TM Non-Intrusive Real-Time Instrumentation for Distributed Systems and Enterprise Applications Prepared for: Borland

2609/14/04, Document: P000XXX, Rev -

TM

Non-Intrusive Real-Time Instrumentation forNon-Intrusive Real-Time Instrumentation forDistributed Systems and Enterprise ApplicationsDistributed Systems and Enterprise Applications

The Data BufferThe Data Buffer

Page 27: 1 09/14/04, Document: P000XXX, Rev - TM Non-Intrusive Real-Time Instrumentation for Distributed Systems and Enterprise Applications Prepared for: Borland

2709/14/04, Document: P000XXX, Rev -

TM

The Data Buffer – CapabilityThe Data Buffer – Capability Record variables free-running or based on an event

Recorded data can be viewed in tabular form, exported to spreadsheet standard formats, or replayed through a visualization view

Page 28: 1 09/14/04, Document: P000XXX, Rev - TM Non-Intrusive Real-Time Instrumentation for Distributed Systems and Enterprise Applications Prepared for: Borland

2809/14/04, Document: P000XXX, Rev -

TM

Non-Intrusive Real-Time Instrumentation forNon-Intrusive Real-Time Instrumentation forDistributed Systems and Enterprise ApplicationsDistributed Systems and Enterprise Applications

CodeEyes BenefitsCodeEyes Benefits

Page 29: 1 09/14/04, Document: P000XXX, Rev - TM Non-Intrusive Real-Time Instrumentation for Distributed Systems and Enterprise Applications Prepared for: Borland

2909/14/04, Document: P000XXX, Rev -

TM

CodeEyes BenefitsCodeEyes Benefits Maximizes Return-on-Investment (ROI) through reduced specialized

code or execution interruption during the development, certification and maintenance stages of product life-cycle Real-time debug with variable watches and modifications reduces coding

and compilation iterations Visualization results can negate the need for specialized code to support

product certification and maintenance

Real-time synchronized visualization of variables across system and enterprise distributed applications

Multiple simultaneous visualization views including strip chart, spectral and statistical

Data buffer that records data for playback and export to spreadsheet standard outputs

Extensible open architecture enables integration of new data sources, including non-application data sources such as hardware and network interfaces, and integration of new views

Page 30: 1 09/14/04, Document: P000XXX, Rev - TM Non-Intrusive Real-Time Instrumentation for Distributed Systems and Enterprise Applications Prepared for: Borland

3009/14/04, Document: P000XXX, Rev -

TM

Non-Intrusive Real-Time Instrumentation forNon-Intrusive Real-Time Instrumentation forDistributed Systems and Enterprise ApplicationsDistributed Systems and Enterprise Applications

CustomersCustomers

Joint Strike Fighter Northrop Grumman Radar Group Northrop Grumman Distributed Aperture (DAS) System Groups Lockheed Martin Software Development Station (SDS)

Page 31: 1 09/14/04, Document: P000XXX, Rev - TM Non-Intrusive Real-Time Instrumentation for Distributed Systems and Enterprise Applications Prepared for: Borland

3109/14/04, Document: P000XXX, Rev -

TM

Non-Intrusive Real-Time Instrumentation forNon-Intrusive Real-Time Instrumentation forDistributed Systems and Enterprise ApplicationsDistributed Systems and Enterprise Applications

QuestionsQuestions

[email protected] www.codeeyes.com

Progeny Systems Corporation 9500 Innovation Drive Manassas, VA 20110

Instrumentation Views

Systems/Enterprises Systems/Enterprises

Non-Intrusive Real-Time Instrumentation for Distributed Systems and Enterprise Applications

Software Debugging and Instrumentation Background

•The application code approach involves inserting system outputs to the console window and embedding instrumentation code and/or building special interfaces to access data which requires recompiles for each iteration, consequently increasing development costs.

•The execution environment approach involves inserting breakpoints into the application code to halt execution at a specified line of code. Though this approach proves to be extremely powerful in simple, single-threaded, isolated applications, it becomes unusable when coupled threads and applications continue execution while a selected one was halted.

•The memory space approach involves accessing memory via the OS independent of the application. There are products that monitor memory locations with limited capability. However, only CodeEyesTM provides the real-time, robust Graphical User Interface (GUI) to view application variables across simultaneous running applications on disparate execution environments using the native compiler symbol tables.

Memory Space

Execution Environment

Console OutputsInstrumentationInterfaces

Application Code

BreakpointsSingle Step

OS Access

Intrusive

Non-Intrusive

What is CodeEyesTM

•An open architecture software instrumentation framework built for complex, distributed, heterogeneous, real-time applications found in today’s systems and enterprises

•Enabled for the first time are synchronous views of application data distributed across .Net, Java, Web Services, CORBA and legacy architectures

CodeEyesTM Benefits

•Maximizes Return-on-Investment (ROI) through reduced specialized code or execution interruption during the development, certification and maintenance stages of product life-cycle

•Real-time, synchronized visualization of variables across system and enterprise distributed applications

•Multiple simultaneous visualization views including strip chart,spectral and statistical

•Data buffer that records data for playback and export to spreadsheet standard outputs

Come See Us