Secure your Java EE projects by using JOnAS Java EE server audit & diagnostic tools

38
# 1 OW2 Annual Conference 2010, November 24-25, La Cantine, Paris. www.ow2.org. Diagnostic & Audit system for Java EE applications Secure your Java EE project with the performance diagnostic tool provided by OW2 JOnAS Florent Benoit, BULL/OW2 [ @florentbenoit ]

description

 

Transcript of Secure your Java EE projects by using JOnAS Java EE server audit & diagnostic tools

Page 1: Secure your Java EE projects by using JOnAS Java EE server audit & diagnostic tools

# 1

OW2 Annual Conference 2010, November 24-25, La Cantine, Paris. www.ow2.org.

Diagnostic & Audit system for Java EE applications

Secure your Java EE project with the performance diagnostic tool provided by OW2 JOnAS

Florent Benoit, BULL/OW2 [ @florentbenoit ]

Page 2: Secure your Java EE projects by using JOnAS Java EE server audit & diagnostic tools

# 2

OW2 Annual Conference 2010, November 24-25, La Cantine, Paris. www.ow2.org.

Summary● Context● Environment : OW2 Java EE JOnAS Application server● Diagnostic tool

● Presentation● Demo

● Audit tool● Presentation● Demo

● Conclusion

Page 3: Secure your Java EE projects by using JOnAS Java EE server audit & diagnostic tools

# 3

OW2 Annual Conference 2010, November 24-25, La Cantine, Paris. www.ow2.org.

Context

Page 4: Secure your Java EE projects by using JOnAS Java EE server audit & diagnostic tools

# 4

OW2 Annual Conference 2010, November 24-25, La Cantine, Paris. www.ow2.org.

Why these tools ?● Java EE specification:

● Ensure portability of applications● Nothing about performance

● Application performance / Reliability ?● Applications can be Java EE compliant without being reliable

● Finding performance problems ?● Not so easy to find the problem with all components that are

linked together.● Traceability

● Get a log for each executed operation● «Cost» of services

● For example, to know the memory used for a request

Page 5: Secure your Java EE projects by using JOnAS Java EE server audit & diagnostic tools

# 5

OW2 Annual Conference 2010, November 24-25, La Cantine, Paris. www.ow2.org.

Environment : OW2 Java EE JOnAS Application server

Page 6: Secure your Java EE projects by using JOnAS Java EE server audit & diagnostic tools

# 6

OW2 Annual Conference 2010, November 24-25, La Cantine, Paris. www.ow2.org.

JOnAS: Java EE Application server● Java EE 5 certified● Java EE services:

● Web Container: Tomcat (6 & 7) / Jetty● EJB3 persistence / JPA 1 & 2: EasyBeans (EclipseLink,

Hibernate, OpenJPA)● Transactions: JOTM● Clustering: CMI● Web Services: CXF/Axis2● Asynchronous Messages: JORAM● OSGi: Felix et IPOJO

● Administration: web console, commands, API, JASMINe (Advanced management tool)

Page 7: Secure your Java EE projects by using JOnAS Java EE server audit & diagnostic tools

# 7

OW2 Annual Conference 2010, November 24-25, La Cantine, Paris. www.ow2.org.

JOnAS : Open Source Server● Developed as an open source server (LGPL) within

OW2: http://jonas.ow2.org● OW2: independent industry consortium dedicated to

developing open source code middleware● Major contributors for JOnAS :Bull, France Telecom,

Peking University, INRIA, UJF, UNIFOR, SERLI

● Linked OW2 projects : EasyBeans, JASMINe, JORAM, JOTM, CMI

Page 8: Secure your Java EE projects by using JOnAS Java EE server audit & diagnostic tools

# 8

OW2 Annual Conference 2010, November 24-25, La Cantine, Paris. www.ow2.org.

OSGi native Architecture ● Dynamically adaptable

platform● OSGi based services● Modularity / Extensibility● Profiles● Enhanced application server

life cycle● On-Demand services● Dynamic configuration● Adaptable

Page 9: Secure your Java EE projects by using JOnAS Java EE server audit & diagnostic tools

# 9

OW2 Annual Conference 2010, November 24-25, La Cantine, Paris. www.ow2.org.

Diagnostic tool

Page 10: Secure your Java EE projects by using JOnAS Java EE server audit & diagnostic tools

# 10

OW2 Annual Conference 2010, November 24-25, La Cantine, Paris. www.ow2.org.

Diagnostic toolJDBC Connection leak detector

Page 11: Secure your Java EE projects by using JOnAS Java EE server audit & diagnostic tools

# 11

OW2 Annual Conference 2010, November 24-25, La Cantine, Paris. www.ow2.org.

« Pool » of JDBC connections

● Limit the number of physical connections to the database● Optimize the time to provide a JDBC connection to the

application

datasource.getConnection();

connection.createStatement();

....

....

connection.close(); DataSource Pool

Page 12: Secure your Java EE projects by using JOnAS Java EE server audit & diagnostic tools

# 12

OW2 Annual Conference 2010, November 24-25, La Cantine, Paris. www.ow2.org.

Forgot to call connection.close() ?

● Problem :No more available connections for new clients● → Connections never closed

– → don't go back in the pool● → Other clients are waiting

– No free connections in the pool !

Busy connections (used by applications) or not yet closed

Empty Pool DataSource Pool

Page 13: Secure your Java EE projects by using JOnAS Java EE server audit & diagnostic tools

# 13

OW2 Annual Conference 2010, November 24-25, La Cantine, Paris. www.ow2.org.

Handling the connection leak ?

● Avoid these connection leaks in production ?● Automatic close of JDBC Connections by JOnAS

– At the end of a method call (EJB stateless / HTTP request), remove() on stateful EJB beans.

● Life-time of JDBC connections– If no calls are done on a JDBC connection for a given amount of

time, this connection is released and go back in the pool

● These solutions are only patches● Goal: Fix the problem in the application's code

– Help provided by the JOnAS web console● Track the root of the problem

Page 14: Secure your Java EE projects by using JOnAS Java EE server audit & diagnostic tools

# 14

OW2 Annual Conference 2010, November 24-25, La Cantine, Paris. www.ow2.org.

Servlet using JDBC connections

55 protected void doGet(....) {56 response.setContentType("text/html");57 PrintWriter out = response.getWriter();58 out.println("<html><body>");5960 DataSource ds = null;61 try {62 ds = (DataSource) new InitialContext().lookup("jdbc_1");63 ds.getConnection();64 } catch (NamingException e) {65 e.printStackTrace();66 } catch (SQLException e) {67 e.printStackTrace();68 } finally {69 out.println("</body></html>");70 out.close();71 }7273 }

Page 15: Secure your Java EE projects by using JOnAS Java EE server audit & diagnostic tools

# 15

OW2 Annual Conference 2010, November 24-25, La Cantine, Paris. www.ow2.org.

Screenshot of JOnAS Admin console

Line to analyze

Page 16: Secure your Java EE projects by using JOnAS Java EE server audit & diagnostic tools

# 16

OW2 Annual Conference 2010, November 24-25, La Cantine, Paris. www.ow2.org.

Servlet with the JDBC error

55 protected void doGet(....) {56 response.setContentType("text/html");57 PrintWriter out = response.getWriter();58 out.println("<html><body>");5960 DataSource ds = null;61 try {62 ds = (DataSource) new InitialContext().lookup("jdbc_1");63 ds.getConnection();64 } catch (NamingException e) {65 e.printStackTrace();66 } catch (SQLException e) {67 e.printStackTrace();68 } finally {69 out.println("</body></html>");70 out.close();71 }7273 }

Page 17: Secure your Java EE projects by using JOnAS Java EE server audit & diagnostic tools

# 17

OW2 Annual Conference 2010, November 24-25, La Cantine, Paris. www.ow2.org.

DemoTracking JDBC connection leaks

Page 18: Secure your Java EE projects by using JOnAS Java EE server audit & diagnostic tools

# 18

OW2 Annual Conference 2010, November 24-25, La Cantine, Paris. www.ow2.org.

Diagnostic toolMonitoring/displaying JVM Threads

Page 19: Secure your Java EE projects by using JOnAS Java EE server audit & diagnostic tools

# 19

OW2 Annual Conference 2010, November 24-25, La Cantine, Paris. www.ow2.org.

Information about JVM threads

Page 20: Secure your Java EE projects by using JOnAS Java EE server audit & diagnostic tools

# 20

OW2 Annual Conference 2010, November 24-25, La Cantine, Paris. www.ow2.org.

DemoThreads monitoring

Page 21: Secure your Java EE projects by using JOnAS Java EE server audit & diagnostic tools

# 21

OW2 Annual Conference 2010, November 24-25, La Cantine, Paris. www.ow2.org.

Audit tools

Page 22: Secure your Java EE projects by using JOnAS Java EE server audit & diagnostic tools

# 22

OW2 Annual Conference 2010, November 24-25, La Cantine, Paris. www.ow2.org.

Goals of the audit system [1/2]● Development

● Discovery of the software architecture of applications and calls between the Java EE modules

→ Difficult to track (complex/distributed applications )● Tracking the performance problems:

→ Enhance the performance→ Identify the component that is causing the problem

● Qualifying● Statistics on features/services that are used (top 10, ...)● Adapt applications to their usage● Trends on applications/services

– Response time, ...

Page 23: Secure your Java EE projects by using JOnAS Java EE server audit & diagnostic tools

# 23

OW2 Annual Conference 2010, November 24-25, La Cantine, Paris. www.ow2.org.

● Production● Audit● Traceability● Log of services that have been used● Billing (You pay what you're using)

– (Google App Engine)

Goals of the audit system [2/2]

Page 24: Secure your Java EE projects by using JOnAS Java EE server audit & diagnostic tools

# 24

OW2 Annual Conference 2010, November 24-25, La Cantine, Paris. www.ow2.org.

Commercial Tools

● Commercial tools● CA Wily Introscope®

● dynaTrace

● BMC AppSight

● Compuware Vantage Analyzer

Page 25: Secure your Java EE projects by using JOnAS Java EE server audit & diagnostic tools

# 25

OW2 Annual Conference 2010, November 24-25, La Cantine, Paris. www.ow2.org.

Solution based on interceptors● Different level of interceptors

● Enabling/disabling on demand● EJB 3

● Invocation (Business service calls)● Lifecycle (Start/Stop)

● HTTP requests● Servlet filter

● JNDI access● Each call on the context returned by the command

 new InitialContext() »: lookup, bind, etc.

Page 26: Secure your Java EE projects by using JOnAS Java EE server audit & diagnostic tools

# 26

OW2 Annual Conference 2010, November 24-25, La Cantine, Paris. www.ow2.org.

Architecture of the Audit System

EasyBeans

Tomcat

JNDI Audit log

JOnAS Admin (Audit module)

JMXNotifications

Jconsole / JMX Client

Audit System

JASMINe

Page 27: Secure your Java EE projects by using JOnAS Java EE server audit & diagnostic tools

# 27

OW2 Annual Conference 2010, November 24-25, La Cantine, Paris. www.ow2.org.

Collected data [1/2]● EJB3

● Invocation– Bean's name– Identity (name + roles)– Called method

● @Local● @Remote● OnMessage

– Size of method parameters– Result– Elapsed time in the method– Exceptions

Page 28: Secure your Java EE projects by using JOnAS Java EE server audit & diagnostic tools

# 28

OW2 Annual Conference 2010, November 24-25, La Cantine, Paris. www.ow2.org.

● HTTP● URL● Encoding● Client (protocol,host, port)● SessionId● Query● Status HTTP

● JNDI● Method that is called on the InitialContext

– bind, lookup, ...– Parameters (if any)

● Elapsed time

Collected data [2/2]

Page 29: Secure your Java EE projects by using JOnAS Java EE server audit & diagnostic tools

# 29

OW2 Annual Conference 2010, November 24-25, La Cantine, Paris. www.ow2.org.

Traceability / Logger● Client of Audit MBeans

● Collecting data● Storage in a log file● Human readable format[10/03/04 22:05:35] class org.ow2.util.auditreport.impl.InvocationAuditReport requestStart = 1267736735591573000 requestStop = 1267736735591630000 requestDuration = 0.057 businessMethod = getCalculator@Local BeanName = Calculator target = /easybeans/audit-sample.ear/audit-sample-ejb.jar/SessionFacade/getCalculator@Local paramSize = 5 returnSize = 0 freeMemoryBefore = 25623392 totalMemoryBefore = 64126976 freeMemoryAfter = 25617704 totalMemoryAfter = 64126976 sweepMarkTime = 873 scavengeTime = 5170 user = ANONYMOUS roles = [JOnAS] requestTimeStamp = 1267736735580 methodStackTrace = [java.lang.Thread.getStackTrace(Thread.java:1409) - ..... ] methodParameters = null

Elapsed timeCalled method

Identity

Parameters

Page 30: Secure your Java EE projects by using JOnAS Java EE server audit & diagnostic tools

# 30

OW2 Annual Conference 2010, November 24-25, La Cantine, Paris. www.ow2.org.

Screenshot of the tool

Page 31: Secure your Java EE projects by using JOnAS Java EE server audit & diagnostic tools

# 31

OW2 Annual Conference 2010, November 24-25, La Cantine, Paris. www.ow2.org.

Screenshot of a method's graph

Page 32: Secure your Java EE projects by using JOnAS Java EE server audit & diagnostic tools

# 32

OW2 Annual Conference 2010, November 24-25, La Cantine, Paris. www.ow2.org.

Advanced mode● Tracking a request on several servers● Tracking asynchronous calls

● Sending to JMS queue / Receiving from a JMS queue

JMS

Servlet

Server 1

Servlet

EJB

Server 2

MDB

Server 3

IDID

IDID

IDID

EJB

Server 4

IDID

CollectingEvents

Page 33: Secure your Java EE projects by using JOnAS Java EE server audit & diagnostic tools

# 33

OW2 Annual Conference 2010, November 24-25, La Cantine, Paris. www.ow2.org.

Demonstration

Page 34: Secure your Java EE projects by using JOnAS Java EE server audit & diagnostic tools

# 34

OW2 Annual Conference 2010, November 24-25, La Cantine, Paris. www.ow2.org.

Demo● Goal of the demonstration

● Enhancing the performances of an application– Discovering problems– Solving problems– Checking this with the audit console

● Traceability of calls in an application

Page 35: Secure your Java EE projects by using JOnAS Java EE server audit & diagnostic tools

# 35

OW2 Annual Conference 2010, November 24-25, La Cantine, Paris. www.ow2.org.

Conclusion

Page 36: Secure your Java EE projects by using JOnAS Java EE server audit & diagnostic tools

# 36

OW2 Annual Conference 2010, November 24-25, La Cantine, Paris. www.ow2.org.

Conclusion [1/2]

● Preventing performance problems→ Secure a project

● Tools can be used in designing/integrating/production ● In production, an other Java EE server may be used

● Tool bundled with JOnAS● Key feature comparing to other Java EE servers● Ready to use● Open Source / LGPL● Integrated in JOnAS 5.2

Page 37: Secure your Java EE projects by using JOnAS Java EE server audit & diagnostic tools

# 37

OW2 Annual Conference 2010, November 24-25, La Cantine, Paris. www.ow2.org.

● Supervising OSGi service● Available OSGi services● Links between components/services● …

● Supervising JPA● Life cycle of “Entities”

● Other metrics● SQL request

– Number of requests– Elapsed time of requests

● ...

Conclusion: what's next ? [2/2]

Page 38: Secure your Java EE projects by using JOnAS Java EE server audit & diagnostic tools

# 38

OW2 Annual Conference 2010, November 24-25, La Cantine, Paris. www.ow2.org.

Q & A

Florent Benoit, BULL/OW2 [ @florentbenoit ]