Theses & Courses
Master Theses (adhoc PES, 2005/2006)
- “Automatic GC parameters estimation using objects lifetime statistics” Sébastien Weiten, 3rd year Student at ESIAL (Nancy-FR):
“My internship has taken place in Basel, Switzerland and has had duration of 4 months.
It has been composed of two main parts. A first research part has aimed at analyzing, understanding and reporting for all the object JVM lifetime estimation related aspects (mainly: JVM memory structure, GC algorithms and lifetime estimation techniques). This constitutes the theoretical basis of further works for automating the JVM tuning process and especially the size of the generations. The purpose of the second subject has been to discover and learn the main performance engineering business and working environment aspects. This has also given me the opportunity to improve my languages and cultural skills as the main experiences I could have, have been located in Switzerland and Germany”. JVM Internship report
- “Collecting metrics from a JAVA 5 running application”: Laurent Schall, 3rd year Student at ESIAL (Nancy-FR):
The original title of this internship is “design and development of a collector which will gather the information provided by the JAVA 5 instrumentation API.” JAVA 1.5 provides a lot of new features (genericity, metadata, etc) which contains tools designed for running programs instrumentation. Using the new java.lang.instrument package, it is possible to transform methods byte code, to make them sending metrics for example, as in our case. Metrics from Java 5
- “Realization and use of a load generating tool for performance-testing J2EE application servers”: Venelin Mitov, student at Université Louis Pasteur (Strasbourg, FR):
“My training course was divided into two parts. The main part consisted of developing an APEF integrated load-generating tool. During the second part the developed load generator had to be used in performance comparative load-tests of different J2EE compliant application servers (BEA WebLogic, IBM WebSphere, JBoss, …)”. Load generating tool for performance-testing J2EE application servers
- “Conception et réalisation d’un collecteur de performance du serveur web Apache” (FR): by Souhir Dabbou (adhoc ISL)
Le présent travail, effectué au sein de adhoc_ISL, entre dans le cadre du projet de fin d’étude pour l’obtention du diplôme national d’ingénieur en informatique. Il consiste à concevoir et réaliser un collecteur de performance du serveur web Apache.En effet, le collecteur doit être capable de récupérer les données de performance, de les traiter et de les envoyer pour être visualisé. rapport-pfe-1.pdf
Working areas: open student subjects
- Project #1 JVM Memory Statistics Collector
Description: design and develop a module to analyze and report Java garbage collector activities. This module will be integrated into APEF framework as a new collector. The collector will support Sun JVM 1.4 and 1.5 and IBM Jvm. It will also integrate metrics grabbed from Java 5 monitoring and management API. Among the advantages provided by such a collector is the facilitation and identification of performance bottlenecks caused by the monitored Java applications, as well as any environment issues related to memory management.
The candidate will have an introduction session to the leading technologies in performance engineering, as well as an overview of APEF framework and its architecture.
- Project #2 : APEF Profiler
Description: In the current environment of short development cycles for delivering a product, developers tend to focus more on the functional aspects of application execution, mostly via testing, debugging, and code fixing. However, many problems do not easily surface until the application is running in production mode, 24 hours a day, 7 days a week and gets pushed to limits during some unexpected peak periods.
The kind of performance problems encountered in production cannot be discovered during a debugging session. Before deployed and run in production mode, it is important to use a profiling tool to analyze application execution and identify performance problems, such as execution bottlenecks, object leaks, and system resource limitations.
The first phase of this project consists in evaluating and comparing existing open source Java profilers based on specific criteria. The second phase consists in adopting the selected profiler to fit into APEF framework. This module will participate in developing the next generation of APEF framework.
The candidate will have an introduction session to the leading technologies in performance engineering, as well as an overview of APEF framework and its architecture.
- Project #3 APEF .Net Collector
Description: APEF has been designed to be open and extensible. Collected performance metrics are OS and platform independent. Hence, in order to monitor the performance of .Net based applications, dedicated collectors should be developed and collected performance data sent to APEF.
The purpose of this project is to design and develop .Net performance collector(s), and extend the list of supported operating systems and platforms by APEF framework.
The candidate will have an introduction session to the leading technologies in performance engineering, as well as an overview of APEF framework and its architecture.
- Project #4 Thread and Heap Dump Analyzer
Description: The goal of this project is to establish a benchmark study on existing Java thread and heap dump analyzers, based on which selection of the appropriate one for APEF is achieved.
The selected analyzer will be adopted, integrated and extended into APEF framework in order to provide its users (performance engineers) with an integrated tool to better analyze threads status, and identify potential performance issues that could be caused by such threads.
- Project #5 JVM benchmark 1.4 vs 1.5 sun vs ibm
Description: Different JVM providers and JVM versions are available on the market. The performances of each one of those JVMs are not the same. The goal of this project is to make a benchmark of the different JVMs and to compare their performances.
- Project #6 APEF Dashboard Viewer and Editor (2 students)
Description: APEF provides a console (GUI) through which collected performance data (KPIs) is analyzed and monitored.
In the case of complex applications (involving may components running on different tiers), it would be useful to have a single dashboard through which performance engineers track the performance of monitored application and involved components.
This main goal of this project is to develop a module that provides APEF users with appropriate tools to design and operate on such dashboards.
Such dashboards would be composed of data objects (such as: graphs, charts, traffic lights) as well as shapes, images, and text objects.
- Project #7 WebServices performance benchmark
Description: Nowadays, Web services are more and more used in the industry.
The goal of this project is to take a standard J2EE application (petStore or DukeBank) and to modify its architecture to use Web services. Then a performance benchmark will be performed in order to compare the performances of both implementations.
Other work and reports
- “J2EE and SOA” Farah HAMAMI, Inès NEFZI, and Asma SGHAIER(Tunisia Polytechnic School)
In this report we will focus on J2EE and SOA architectural characteristics in order to come up with their performances and additional benefits and depict their limits.
The first section will deal with chronological programming evolution until multi-tier architectures implemented by J2EE. The second section will outline the J2EE tiered architecture. Then we will define SOA architectural characteristics. And we will detail its advantages and drawbacks to end by key performance indicators (KPI).j2eeandsoa_report1
- “Comparing J2EE with .NET” Akrem OURIR, Mohamed HIDRI, and Mohamed JRAD(Tunisia Polytechnic School)
Both J2EE and .NET represent a revolution in the programming field. Java 2 Platform Enterprise Edition (J2EE) is a new Java platform specifically designed to address the needs of enterprise server side computing. It provides scalability, interoperability, reliability, and security. .NET is a solid set of development tools. It allows programmers to use multiple languages (C++, VB, B.NET, C#, etc.) and run them in one environment, making recruiting affordable talents easier. In addition, tools are accessible in a way that made them easier to learn, which accelerates training and development.comparingj2eewithnet_report

