Masterthesis (Dresden): Generation of Message Traces by using Java-Bytecode instrumentation
Today, not only the huge and continuously increasing amount of data have become a
challenge. Other aspects, such as the quality of data and the intensified demand to include
varying and heterogeneous data sources into the analysis have become a further challenge for
data analysts in science and business. These data properties and related challenges are
subsumed under the term Big Data. With the increasing need for Big Data solutions handling
large and complex data sets, Java-written frameworks have emerged, which provide an easy to
use API. Examples for those frameworks are Apache projects such as Hadoop, Spark or Flink.
For large-scale data analysis there is still the need to optimize programs, for which the
developer requires tools to automatically add logging to his application in order to know which
methods are worth for optimization. To achieve this, two approaches exist, source-code
instrumentation and bytecode instrumentation. Bytecode instrumentation is favorable when
one has to use pre-compiled Java frameworks.
- Investigation of Java bytecode instrumentation frameworks
- Implementation of a generic tool, which can be used to:
- Read Java class files;
- Add code to trace method calls and method returns for user-defined methods and
- Transform Java class files into class files with embedded tracing logic
- Demonstration of the instrumentation method for trace generation (multi -threaded)
- Documentation of implementation and results in written form
The user-defined methods and classes should be defined by a configuration file.
For the tool, it is necessary, that the code added before and after the method during
instrumentation can be specified by the user via configuration files or via Java
For this work, knowledge of Java and instrumentation basics are required. Furthermore, knowledge of Java's class file format or Java bytecode frameworks are desirable.
The language can be either German or English.