Using Group-based Projects To Improve Retention
Download
Report
Transcript Using Group-based Projects To Improve Retention
JPManager: A J2EE PERFORMANCE
MANAGEMENT SYSTEM
Jiang Guo
Department of Computer Science
California State University Los Angeles
March 24, 2010
Background
J2EE is widely used in enterprise scale
application
Performance management of J2EE
application is a challenge issue
A tool is developed to solve the problem
based on Java instrumentation
Two End-to-end Monitoring Tools
Non-intrusive
Ghost Transaction
Simulates the scenarios of user interactions
intrusive
Java Instrumentation
Insert extra Java codes into the applications
Benefit of Java Instrumentation
Collecting executing information at
low level
Make fine-grained measurements
into the application structure
Dynamic or Static
Dynamic – Java Instrumentation
Can deal with third party classes from
remote side
Static – Aspect Programming
Only deal with classes with source
code
J2EE-based Enterprise Applications
Web Servers
Clients
Web Servers
Browsers
Apache, Tomcat
IE, Firefox
F
i
l
t
e
r
s
Applets
JavaScripts
HTML
Servlets
JSPs
Application Servers
EJB
Containers
Legacy
Systems
JBoss, WebLogic
EJBs
JDBCs
DB
Servers
MySQL …
Remote
Classes
The Architecture of JPManager
Data Collection Agent of JPManager
Java Virtual Machine
Java Application Environment
(Tomcat, JBoss, WebLogic)
Target Application
Servlets, JSP, EJBs,
Threads
Instrumentation
Profile
Data Collection Agents
Instrumenter
Instrumenter
Applicatoin Class
Metrics Information:
Class Metrics
Thread Metrics
Instrumenter
DCA
Metric Provider
Two instrumentation methods
Class Intercepting
Instrument the byte code by changing the
hierarchy of class inheritance.
Method Hijacking
Instrument the byte code by adding new
methods to classes or new probe codes to
the methods.
Java Virtual Machine Components
Class loaders
Class file verifier
Execution engine
The Delegation of Class Loaders
Primary Class Loader
Extension Class Loader
Application Class Loader
User Defined Class Loader
Data Flow of the Instrumentation
Instrumentation
Profile
DCA
Metric Provider
Modified ClassLoader
Application
Classes
DCA
Instrumenter
JVM
Metrics
Information
JPManager
Server
Instrumented
Classes
JVM Execution
Engine
Dynamic
Information
Steps of the Java Instrumentation
Run Data Collection
Agents in a Standard
JVM
Modify the
ClassLoader
Based on the
Instrumentation Profile
Create a New JVM
with Modified
ClassLoader and Run
J2EE Application in the
Modified JVM
Extract Data and Send
them to JPManger
Server
Analysis of Java Instrumentation (1)
Static Structure Consistency
instrumentation : R = <L, P >
x, v [P.start(x) = R.start(x) v before L
P.ValueOf(v) = R.ValueOf(v)]
x, v [P.start(x) = R.start(x) w after L
P.ValueOf(w) = R.ValueOf(w)]
Dynamic Execution Consistency
Object o can be described by a six-tuple
= (S, s0, Mcall, T, )
Analysis of Java Instrumentation (2)
is o life space
S is a finite set of states of object
s0 is a single start state of the object s0 ,
this state is usually created by new.
Mcall is a set of method calls
T is a set of valid timestamps
is a mapping
Execution of the WEB Store Application
Conclusions (1)
Most commercial J2EE tools focus on
service transactions
database servers
directory services
application servers themselves
Conclusions (2)
Our tool support monitoring and
analyzing the J2EE components and
APIs
Can monitor all Java based systems
Thank you!
Thank you!