1 09/14/04, document: p000xxx, rev - tm non-intrusive real-time instrumentation for distributed...
TRANSCRIPT
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
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
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
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
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
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
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
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
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
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
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
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#
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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)
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