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!