Title: NonIntrusive RealTime Instrumentation for Distributed Systems and Enterprise Applications Prepared f
1Non-Intrusive Real-Time Instrumentation
forDistributed Systems and Enterprise
ApplicationsPrepared forBorland
ConferencePresented byJorly Metzger,
703.368.6107x235, jorly.metzger_at_progeny.netProdu
ct ManagerGary Sikora, 703.795.4684,
gary.sikora_at_progeny.netSales ManagerStewart
Bittel, 703.772.3512, stewart.bittle_at_progeny.net
14 September 2004Document P000XXX, Rev -
TM
2Agenda
- Background
- What is CodeEyes
- How CodeEyes Works
- How Variables are Selected
- The Visualizations Views
- The Data Buffer
- CodeEyes Benefits
- Customers
- Questions
3Non-Intrusive Real-Time Instrumentation
forDistributed Systems and Enterprise
ApplicationsBackground
4Background Instrumentation Approach
- Typical approach
- Application code modification
- Execution environment interruption
- CodeEyes approach
- Accessing memory via the Operating System (OS)
independent of the application
5Background 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 Outputs
Displayed System Outputs
6Background 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
Variable Watch
7Background 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
Project Compiler
Native Symbol File
Graphical
Memory
Project Source Code
Command Line
or
Buffer
Special Compiler
Special Symbol File
8Non-Intrusive Real-Time Instrumentation
forDistributed Systems and Enterprise
ApplicationsWhat is CodeEyes
9What is CodeEyes Overview
- An open architecture software instrumentation
framework built for complex, distributed,
heterogeneous, real-time applications found in
todays systems and enterprises
- 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 applications code
or execution environment are not modified or
interrupted when instrumentation data is accessed
10What 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
11Non-Intrusive Real-Time Instrumentation
forDistributed Systems and Enterprise
ApplicationsHow CodeEyes Works
12How 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 formats
13How 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
14How 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 OSs,
embedded systems, even for non-memory sources,
such as databases and hardware
15How 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 OSs,
embedded systems, even for non-memory sources,
such as databases and hardware
16Non-Intrusive Real-Time Instrumentation
forDistributed Systems and Enterprise
ApplicationsHow Variables are Selected
17How 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
18How 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 applications 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
19Non-Intrusive Real-Time Instrumentation
forDistributed Systems and Enterprise
ApplicationsThe Visualization Views
20The 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
21The 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
22The 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
23The Visualization Views Spectral
- 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
- 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
24The Visualization Views Statistical
- Signal mean and standard deviation are
continuously calculated and displayed - Truth can be a static value or a reference to a
real-time variable
- 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
25The Visualization Views Statistical
- Signal mean and standard deviation are
continuously calculated and displayed - Truth can be a static value or a reference to a
real-time variable
- 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
26Non-Intrusive Real-Time Instrumentation
forDistributed Systems and Enterprise
ApplicationsThe Data Buffer
27The 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
28Non-Intrusive Real-Time Instrumentation
forDistributed Systems and Enterprise
ApplicationsCodeEyes Benefits
29CodeEyes 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
30Non-Intrusive Real-Time Instrumentation
forDistributed Systems and Enterprise
ApplicationsCustomers
- Joint Strike Fighter
- Northrop Grumman Radar Group
- Northrop Grumman Distributed Aperture (DAS)
System Groups - Lockheed Martin Software Development Station (SDS)
31Non-Intrusive Real-Time Instrumentation
forDistributed Systems and Enterprise
ApplicationsQuestions
Come See Us