SlideShare uma empresa Scribd logo
1 de 38
Baixar para ler offline
# 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 ]
# 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
# 3
OW2 Annual Conference 2010, November 24-25, La Cantine, Paris.
www.ow2.org.
Context
# 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
# 5
OW2 Annual Conference 2010, November 24-25, La Cantine, Paris.
www.ow2.org.
Environment : OW2 Java EE JOnAS
Application server
# 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)
# 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
# 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
# 9
OW2 Annual Conference 2010, November 24-25, La Cantine, Paris.
www.ow2.org.
Diagnostic tool
# 10
OW2 Annual Conference 2010, November 24-25, La Cantine, Paris.
www.ow2.org.
Diagnostic tool
JDBC Connection leak detector
# 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
# 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 PoolDataSource Pool
# 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
# 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>");
59
60 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 }
72
73 }
# 15
OW2 Annual Conference 2010, November 24-25, La Cantine, Paris.
www.ow2.org.
Screenshot of JOnAS Admin console
Line to analyze
# 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>");
59
60 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 }
72
73 }
# 17
OW2 Annual Conference 2010, November 24-25, La Cantine, Paris.
www.ow2.org.
Demo
Tracking JDBC connection leaks
# 18
OW2 Annual Conference 2010, November 24-25, La Cantine, Paris.
www.ow2.org.
Diagnostic tool
Monitoring/displaying JVM Threads
# 19
OW2 Annual Conference 2010, November 24-25, La Cantine, Paris.
www.ow2.org.
Information about JVM threads
# 20
OW2 Annual Conference 2010, November 24-25, La Cantine, Paris.
www.ow2.org.
Demo
Threads monitoring
# 21
OW2 Annual Conference 2010, November 24-25, La Cantine, Paris.
www.ow2.org.
Audit 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, ...
# 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]
# 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
# 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.
# 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)
JMX
Notifications
Jconsole / JMX Client
Audit System
JASMINe
# 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
# 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]
# 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 time
Called method
Identity
Parameters
# 30
OW2 Annual Conference 2010, November 24-25, La Cantine, Paris.
www.ow2.org.
Screenshot of the tool
# 31
OW2 Annual Conference 2010, November 24-25, La Cantine, Paris.
www.ow2.org.
Screenshot of a method's graph
# 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
Collecting
Events
# 33
OW2 Annual Conference 2010, November 24-25, La Cantine, Paris.
www.ow2.org.
Demonstration
# 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
# 35
OW2 Annual Conference 2010, November 24-25, La Cantine, Paris.
www.ow2.org.
Conclusion
# 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
# 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]
# 38
OW2 Annual Conference 2010, November 24-25, La Cantine, Paris.
www.ow2.org.
Q & A
Florent Benoit, BULL/OW2 [ @florentbenoit ]

Mais conteúdo relacionado

Mais procurados (6)

OpenDaylight Brisbane User Group - OpenDaylight Security
OpenDaylight Brisbane User Group - OpenDaylight SecurityOpenDaylight Brisbane User Group - OpenDaylight Security
OpenDaylight Brisbane User Group - OpenDaylight Security
 
Automatic Identification of Bug Introducing Changes
Automatic Identification of Bug Introducing ChangesAutomatic Identification of Bug Introducing Changes
Automatic Identification of Bug Introducing Changes
 
Sofa2 Q-im ress-ow2-conference-nov10
Sofa2 Q-im ress-ow2-conference-nov10Sofa2 Q-im ress-ow2-conference-nov10
Sofa2 Q-im ress-ow2-conference-nov10
 
AusCERT 2016: CVE and alternatives
AusCERT 2016: CVE and alternativesAusCERT 2016: CVE and alternatives
AusCERT 2016: CVE and alternatives
 
1112 agile approach to pci dss development
1112 agile approach to pci dss development1112 agile approach to pci dss development
1112 agile approach to pci dss development
 
網路攻擊與封包分析- Wireshark
網路攻擊與封包分析- Wireshark網路攻擊與封包分析- Wireshark
網路攻擊與封包分析- Wireshark
 

Destaque

OW2 Petals Dragon SOA Linuxtag09
OW2 Petals Dragon SOA Linuxtag09OW2 Petals Dragon SOA Linuxtag09
OW2 Petals Dragon SOA Linuxtag09
Catherine Nuel
 
Ow2 Today Solution Linux2010
Ow2 Today Solution Linux2010Ow2 Today Solution Linux2010
Ow2 Today Solution Linux2010
OW2
 
OW2 Exo Platform Open Social Portal Linuxtag09
OW2 Exo Platform Open Social Portal Linuxtag09OW2 Exo Platform Open Social Portal Linuxtag09
OW2 Exo Platform Open Social Portal Linuxtag09
Catherine Nuel
 
Selfxl Project Solutions Linux Ow2
Selfxl Project Solutions Linux Ow2Selfxl Project Solutions Linux Ow2
Selfxl Project Solutions Linux Ow2
Catherine Nuel
 

Destaque (8)

OW2 Petals Dragon SOA Linuxtag09
OW2 Petals Dragon SOA Linuxtag09OW2 Petals Dragon SOA Linuxtag09
OW2 Petals Dragon SOA Linuxtag09
 
Open Education. A Modern Approach to Teaching and Learning
Open Education. A Modern Approach to Teaching and LearningOpen Education. A Modern Approach to Teaching and Learning
Open Education. A Modern Approach to Teaching and Learning
 
Ow2 Today Solution Linux2010
Ow2 Today Solution Linux2010Ow2 Today Solution Linux2010
Ow2 Today Solution Linux2010
 
OW2 Exo Platform Open Social Portal Linuxtag09
OW2 Exo Platform Open Social Portal Linuxtag09OW2 Exo Platform Open Social Portal Linuxtag09
OW2 Exo Platform Open Social Portal Linuxtag09
 
Open Educational Resources: Building a Culture of Sharing
Open Educational Resources: Building a Culture of SharingOpen Educational Resources: Building a Culture of Sharing
Open Educational Resources: Building a Culture of Sharing
 
Cédric Thomas, OW2 CEO presentation at Net Futures 2016
Cédric Thomas, OW2 CEO presentation at Net Futures 2016Cédric Thomas, OW2 CEO presentation at Net Futures 2016
Cédric Thomas, OW2 CEO presentation at Net Futures 2016
 
The Open Strategy
The Open StrategyThe Open Strategy
The Open Strategy
 
Selfxl Project Solutions Linux Ow2
Selfxl Project Solutions Linux Ow2Selfxl Project Solutions Linux Ow2
Selfxl Project Solutions Linux Ow2
 

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

OW2 Squat SONAR Qualipso, OW2con11, Nov 24-25, Paris
OW2 Squat SONAR Qualipso, OW2con11, Nov 24-25, ParisOW2 Squat SONAR Qualipso, OW2con11, Nov 24-25, Paris
OW2 Squat SONAR Qualipso, OW2con11, Nov 24-25, Paris
OW2
 
Salome TMF OW2 Conference Nov10
Salome TMF OW2 Conference Nov10Salome TMF OW2 Conference Nov10
Salome TMF OW2 Conference Nov10
OW2
 
Transforming Datacenter Jaspersoft-ow2-conference-nov10
Transforming Datacenter Jaspersoft-ow2-conference-nov10Transforming Datacenter Jaspersoft-ow2-conference-nov10
Transforming Datacenter Jaspersoft-ow2-conference-nov10
OW2
 
Open Source and Standardization
Open Source and StandardizationOpen Source and Standardization
Open Source and Standardization
OW2
 
Open Source Innovation Factory, OW2con11, Nov 24-25, 2011, Paris
Open Source Innovation Factory, OW2con11, Nov 24-25, 2011, ParisOpen Source Innovation Factory, OW2con11, Nov 24-25, 2011, Paris
Open Source Innovation Factory, OW2con11, Nov 24-25, 2011, Paris
OW2
 
Crating Value with Open Source, OW2con11, Nov 24-25, Paris
Crating Value with Open Source, OW2con11, Nov 24-25, ParisCrating Value with Open Source, OW2con11, Nov 24-25, Paris
Crating Value with Open Source, OW2con11, Nov 24-25, Paris
OW2
 
OSGi & JOnAS, OW2con11, Nov 24-25, Paris
OSGi & JOnAS, OW2con11, Nov 24-25, ParisOSGi & JOnAS, OW2con11, Nov 24-25, Paris
OSGi & JOnAS, OW2con11, Nov 24-25, Paris
OW2
 
Leverage OSGi in business application with JOnAS
Leverage OSGi in business application with JOnASLeverage OSGi in business application with JOnAS
Leverage OSGi in business application with JOnAS
Guillaume Sauthier
 

Semelhante a Secure your Java EE projects by using JOnAS Java EE server audit & diagnostic tools (20)

OW2 Squat SONAR Qualipso, OW2con11, Nov 24-25, Paris
OW2 Squat SONAR Qualipso, OW2con11, Nov 24-25, ParisOW2 Squat SONAR Qualipso, OW2con11, Nov 24-25, Paris
OW2 Squat SONAR Qualipso, OW2con11, Nov 24-25, Paris
 
Reliable Asynchronous Web Services on Java EE JOnAS server and Apache CXF
Reliable Asynchronous Web Services on Java EE JOnAS server and Apache CXFReliable Asynchronous Web Services on Java EE JOnAS server and Apache CXF
Reliable Asynchronous Web Services on Java EE JOnAS server and Apache CXF
 
Salome TMF OW2 Conference Nov10
Salome TMF OW2 Conference Nov10Salome TMF OW2 Conference Nov10
Salome TMF OW2 Conference Nov10
 
Transforming Datacenter Jaspersoft-ow2-conference-nov10
Transforming Datacenter Jaspersoft-ow2-conference-nov10Transforming Datacenter Jaspersoft-ow2-conference-nov10
Transforming Datacenter Jaspersoft-ow2-conference-nov10
 
Manage Microservices Chaos and Complexity with Observability
Manage Microservices Chaos and Complexity with ObservabilityManage Microservices Chaos and Complexity with Observability
Manage Microservices Chaos and Complexity with Observability
 
Bots on guard of sdlc
Bots on guard of sdlcBots on guard of sdlc
Bots on guard of sdlc
 
Open Source and Standardization
Open Source and StandardizationOpen Source and Standardization
Open Source and Standardization
 
Jasmine Probe, OW2con11, Nov 24-25, Paris
Jasmine Probe, OW2con11, Nov 24-25, ParisJasmine Probe, OW2con11, Nov 24-25, Paris
Jasmine Probe, OW2con11, Nov 24-25, Paris
 
REAL-TIME OBJECT DETECTION USING OPEN COMPUTER VISION
REAL-TIME OBJECT DETECTION USING OPEN COMPUTER VISIONREAL-TIME OBJECT DETECTION USING OPEN COMPUTER VISION
REAL-TIME OBJECT DETECTION USING OPEN COMPUTER VISION
 
Open Source Innovation Factory, OW2con11, Nov 24-25, 2011, Paris
Open Source Innovation Factory, OW2con11, Nov 24-25, 2011, ParisOpen Source Innovation Factory, OW2con11, Nov 24-25, 2011, Paris
Open Source Innovation Factory, OW2con11, Nov 24-25, 2011, Paris
 
Comprehending Ajax Web Applications by the DynaRIA Tool
Comprehending Ajax Web Applications by the DynaRIA ToolComprehending Ajax Web Applications by the DynaRIA Tool
Comprehending Ajax Web Applications by the DynaRIA Tool
 
Crating Value with Open Source, OW2con11, Nov 24-25, Paris
Crating Value with Open Source, OW2con11, Nov 24-25, ParisCrating Value with Open Source, OW2con11, Nov 24-25, Paris
Crating Value with Open Source, OW2con11, Nov 24-25, Paris
 
IoTMeetupGuildford#19: Michele Nati, Boosting IoT interoperability, F-Interop...
IoTMeetupGuildford#19: Michele Nati, Boosting IoT interoperability, F-Interop...IoTMeetupGuildford#19: Michele Nati, Boosting IoT interoperability, F-Interop...
IoTMeetupGuildford#19: Michele Nati, Boosting IoT interoperability, F-Interop...
 
Consistent service integration in your workflows with OW2 Scarbo 2.0, OW2con'...
Consistent service integration in your workflows with OW2 Scarbo 2.0, OW2con'...Consistent service integration in your workflows with OW2 Scarbo 2.0, OW2con'...
Consistent service integration in your workflows with OW2 Scarbo 2.0, OW2con'...
 
OW2Con2012 Scarbo2 SOA-Consistent BPM
OW2Con2012 Scarbo2 SOA-Consistent BPMOW2Con2012 Scarbo2 SOA-Consistent BPM
OW2Con2012 Scarbo2 SOA-Consistent BPM
 
Tracing-for-fun-and-profit.pptx
Tracing-for-fun-and-profit.pptxTracing-for-fun-and-profit.pptx
Tracing-for-fun-and-profit.pptx
 
Jose Luis Soria - Codemotion 2014 - Designing a release pipeline
Jose Luis Soria - Codemotion 2014 - Designing a release pipelineJose Luis Soria - Codemotion 2014 - Designing a release pipeline
Jose Luis Soria - Codemotion 2014 - Designing a release pipeline
 
LemonLDAP NG 1.2, OW2con'12, Paris
LemonLDAP NG 1.2, OW2con'12, ParisLemonLDAP NG 1.2, OW2con'12, Paris
LemonLDAP NG 1.2, OW2con'12, Paris
 
OSGi & JOnAS, OW2con11, Nov 24-25, Paris
OSGi & JOnAS, OW2con11, Nov 24-25, ParisOSGi & JOnAS, OW2con11, Nov 24-25, Paris
OSGi & JOnAS, OW2con11, Nov 24-25, Paris
 
Leverage OSGi in business application with JOnAS
Leverage OSGi in business application with JOnASLeverage OSGi in business application with JOnAS
Leverage OSGi in business application with JOnAS
 

Mais de Florent BENOIT

Build an OSGi Web Console with Adobe Flex Technology and OSGi
Build an OSGi Web Console with Adobe Flex Technology and OSGiBuild an OSGi Web Console with Adobe Flex Technology and OSGi
Build an OSGi Web Console with Adobe Flex Technology and OSGi
Florent BENOIT
 

Mais de Florent BENOIT (19)

Code in the cloud with eclipse che and docker / snowcamp.io 2017
Code in the cloud with eclipse che and docker /  snowcamp.io 2017Code in the cloud with eclipse che and docker /  snowcamp.io 2017
Code in the cloud with eclipse che and docker / snowcamp.io 2017
 
Host any project in che with stacks & chefiles
Host any project in che with stacks & chefilesHost any project in che with stacks & chefiles
Host any project in che with stacks & chefiles
 
Extending Eclipse Che to build custom Cloud IDEs
Extending Eclipse Che to build custom Cloud IDEsExtending Eclipse Che to build custom Cloud IDEs
Extending Eclipse Che to build custom Cloud IDEs
 
Extending Eclipse Che to build custom cloud IDEs
Extending Eclipse Che to build custom cloud IDEsExtending Eclipse Che to build custom cloud IDEs
Extending Eclipse Che to build custom cloud IDEs
 
Code in the cloud with Eclipse Che and Docker
Code in the cloud with Eclipse Che and DockerCode in the cloud with Eclipse Che and Docker
Code in the cloud with Eclipse Che and Docker
 
Eclipse Che: The Next-Gen Eclipse IDE - Bordeaux jug 2016
Eclipse Che: The Next-Gen Eclipse IDE - Bordeaux jug 2016Eclipse Che: The Next-Gen Eclipse IDE - Bordeaux jug 2016
Eclipse Che: The Next-Gen Eclipse IDE - Bordeaux jug 2016
 
Code in the cloud with Eclipse Che and Docker - EclipseCon France 2016
Code in the cloud with Eclipse Che and Docker - EclipseCon France 2016Code in the cloud with Eclipse Che and Docker - EclipseCon France 2016
Code in the cloud with Eclipse Che and Docker - EclipseCon France 2016
 
Eclipse Che and Artik IDE
Eclipse Che and Artik IDEEclipse Che and Artik IDE
Eclipse Che and Artik IDE
 
Poitou-Charentes JUG 2016 Eclipse Che: The Next-Gen Eclipse IDE
Poitou-Charentes JUG 2016 Eclipse Che: The Next-Gen Eclipse IDEPoitou-Charentes JUG 2016 Eclipse Che: The Next-Gen Eclipse IDE
Poitou-Charentes JUG 2016 Eclipse Che: The Next-Gen Eclipse IDE
 
Nantes Jug 2016 Eclipse Che: The Next-Gen Eclipse IDE
Nantes Jug 2016 Eclipse Che: The Next-Gen Eclipse IDENantes Jug 2016 Eclipse Che: The Next-Gen Eclipse IDE
Nantes Jug 2016 Eclipse Che: The Next-Gen Eclipse IDE
 
Extending Eclipse Che to build custom cloud IDEs
Extending Eclipse Che to build custom cloud IDEsExtending Eclipse Che to build custom cloud IDEs
Extending Eclipse Che to build custom cloud IDEs
 
Eclipse Che : ParisJUG
Eclipse Che : ParisJUGEclipse Che : ParisJUG
Eclipse Che : ParisJUG
 
Code in the cloud with Eclipse Che and Docker
Code in the cloud with Eclipse Che and DockerCode in the cloud with Eclipse Che and Docker
Code in the cloud with Eclipse Che and Docker
 
Devoxx France: Développement JAVA avec un IDE dans le Cloud: Yes we can !
Devoxx France: Développement JAVA avec un IDE dans le Cloud: Yes we can !Devoxx France: Développement JAVA avec un IDE dans le Cloud: Yes we can !
Devoxx France: Développement JAVA avec un IDE dans le Cloud: Yes we can !
 
Introduction to Codenvy / JugSummerCamp 2014
Introduction to Codenvy / JugSummerCamp 2014Introduction to Codenvy / JugSummerCamp 2014
Introduction to Codenvy / JugSummerCamp 2014
 
Introduction to Eclipse Che / EclipseCon 2014
Introduction to Eclipse Che / EclipseCon 2014Introduction to Eclipse Che / EclipseCon 2014
Introduction to Eclipse Che / EclipseCon 2014
 
Build an OSGi Web Console with Adobe Flex Technology and OSGi
Build an OSGi Web Console with Adobe Flex Technology and OSGiBuild an OSGi Web Console with Adobe Flex Technology and OSGi
Build an OSGi Web Console with Adobe Flex Technology and OSGi
 
Create Dynamic console with OSGi and Adobe Flex
Create Dynamic console with OSGi and Adobe FlexCreate Dynamic console with OSGi and Adobe Flex
Create Dynamic console with OSGi and Adobe Flex
 
JOnAS Addons and the deployment for PaaS and SaaS applications
JOnAS Addons and the deployment for PaaS and SaaS applicationsJOnAS Addons and the deployment for PaaS and SaaS applications
JOnAS Addons and the deployment for PaaS and SaaS applications
 

Último

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Último (20)

04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 

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

  • 1. # 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 ]
  • 2. # 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
  • 3. # 3 OW2 Annual Conference 2010, November 24-25, La Cantine, Paris. www.ow2.org. Context
  • 4. # 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
  • 5. # 5 OW2 Annual Conference 2010, November 24-25, La Cantine, Paris. www.ow2.org. Environment : OW2 Java EE JOnAS Application server
  • 6. # 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)
  • 7. # 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
  • 8. # 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
  • 9. # 9 OW2 Annual Conference 2010, November 24-25, La Cantine, Paris. www.ow2.org. Diagnostic tool
  • 10. # 10 OW2 Annual Conference 2010, November 24-25, La Cantine, Paris. www.ow2.org. Diagnostic tool JDBC Connection leak detector
  • 11. # 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
  • 12. # 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 PoolDataSource Pool
  • 13. # 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
  • 14. # 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>"); 59 60 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 } 72 73 }
  • 15. # 15 OW2 Annual Conference 2010, November 24-25, La Cantine, Paris. www.ow2.org. Screenshot of JOnAS Admin console Line to analyze
  • 16. # 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>"); 59 60 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 } 72 73 }
  • 17. # 17 OW2 Annual Conference 2010, November 24-25, La Cantine, Paris. www.ow2.org. Demo Tracking JDBC connection leaks
  • 18. # 18 OW2 Annual Conference 2010, November 24-25, La Cantine, Paris. www.ow2.org. Diagnostic tool Monitoring/displaying JVM Threads
  • 19. # 19 OW2 Annual Conference 2010, November 24-25, La Cantine, Paris. www.ow2.org. Information about JVM threads
  • 20. # 20 OW2 Annual Conference 2010, November 24-25, La Cantine, Paris. www.ow2.org. Demo Threads monitoring
  • 21. # 21 OW2 Annual Conference 2010, November 24-25, La Cantine, Paris. www.ow2.org. Audit tools
  • 22. # 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, ...
  • 23. # 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]
  • 24. # 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
  • 25. # 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.
  • 26. # 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) JMX Notifications Jconsole / JMX Client Audit System JASMINe
  • 27. # 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
  • 28. # 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]
  • 29. # 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 time Called method Identity Parameters
  • 30. # 30 OW2 Annual Conference 2010, November 24-25, La Cantine, Paris. www.ow2.org. Screenshot of the tool
  • 31. # 31 OW2 Annual Conference 2010, November 24-25, La Cantine, Paris. www.ow2.org. Screenshot of a method's graph
  • 32. # 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 Collecting Events
  • 33. # 33 OW2 Annual Conference 2010, November 24-25, La Cantine, Paris. www.ow2.org. Demonstration
  • 34. # 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
  • 35. # 35 OW2 Annual Conference 2010, November 24-25, La Cantine, Paris. www.ow2.org. Conclusion
  • 36. # 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
  • 37. # 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]
  • 38. # 38 OW2 Annual Conference 2010, November 24-25, La Cantine, Paris. www.ow2.org. Q & A Florent Benoit, BULL/OW2 [ @florentbenoit ]